提交 c0f70656 编写于 作者: K Kohsuke Kawaguchi

added a marker interface to help plugin developers.

上级 a8b609ef
...@@ -46,6 +46,7 @@ import jenkins.InitReactorRunner; ...@@ -46,6 +46,7 @@ import jenkins.InitReactorRunner;
import jenkins.RestartRequiredException; import jenkins.RestartRequiredException;
import jenkins.YesNoMaybe; import jenkins.YesNoMaybe;
import jenkins.model.Jenkins; import jenkins.model.Jenkins;
import jenkins.util.io.OnMaster;
import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.fileupload.servlet.ServletFileUpload;
...@@ -99,7 +100,7 @@ import static hudson.init.InitMilestone.*; ...@@ -99,7 +100,7 @@ import static hudson.init.InitMilestone.*;
* @author Kohsuke Kawaguchi * @author Kohsuke Kawaguchi
*/ */
@ExportedBean @ExportedBean
public abstract class PluginManager extends AbstractModelObject { public abstract class PluginManager extends AbstractModelObject implements OnMaster {
/** /**
* All discovered plugins. * All discovered plugins.
*/ */
......
...@@ -60,6 +60,7 @@ import hudson.widgets.HistoryWidget.Adapter; ...@@ -60,6 +60,7 @@ import hudson.widgets.HistoryWidget.Adapter;
import hudson.widgets.Widget; import hudson.widgets.Widget;
import jenkins.model.Jenkins; import jenkins.model.Jenkins;
import jenkins.model.ProjectNamingStrategy; import jenkins.model.ProjectNamingStrategy;
import jenkins.util.io.OnMaster;
import net.sf.json.JSONException; import net.sf.json.JSONException;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFactory;
...@@ -102,7 +103,7 @@ import static javax.servlet.http.HttpServletResponse.*; ...@@ -102,7 +103,7 @@ import static javax.servlet.http.HttpServletResponse.*;
* @author Kohsuke Kawaguchi * @author Kohsuke Kawaguchi
*/ */
public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, RunT>> public abstract class Job<JobT extends Job<JobT, RunT>, RunT extends Run<JobT, RunT>>
extends AbstractItem implements ExtensionPoint, StaplerOverridable { extends AbstractItem implements ExtensionPoint, StaplerOverridable, OnMaster {
/** /**
* Next build number. Kept in a separate file because this is the only * Next build number. Kept in a separate file because this is the only
......
...@@ -59,6 +59,7 @@ import java.util.List; ...@@ -59,6 +59,7 @@ import java.util.List;
import java.util.logging.Logger; import java.util.logging.Logger;
import jenkins.model.Jenkins; import jenkins.model.Jenkins;
import jenkins.util.io.OnMaster;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.kohsuke.stapler.BindInterceptor; import org.kohsuke.stapler.BindInterceptor;
import org.kohsuke.stapler.Stapler; import org.kohsuke.stapler.Stapler;
...@@ -77,7 +78,7 @@ import org.kohsuke.stapler.export.Exported; ...@@ -77,7 +78,7 @@ import org.kohsuke.stapler.export.Exported;
* @see NodeDescriptor * @see NodeDescriptor
*/ */
@ExportedBean @ExportedBean
public abstract class Node extends AbstractModelObject implements ReconfigurableDescribable<Node>, ExtensionPoint, AccessControlled { public abstract class Node extends AbstractModelObject implements ReconfigurableDescribable<Node>, ExtensionPoint, AccessControlled, OnMaster {
private static final Logger LOGGER = Logger.getLogger(Node.class.getName()); private static final Logger LOGGER = Logger.getLogger(Node.class.getName());
......
...@@ -97,6 +97,7 @@ import javax.servlet.ServletException; ...@@ -97,6 +97,7 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import jenkins.model.Jenkins; import jenkins.model.Jenkins;
import jenkins.util.io.OnMaster;
import net.sf.json.JSONObject; import net.sf.json.JSONObject;
import org.apache.commons.io.input.NullInputStream; import org.apache.commons.io.input.NullInputStream;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
...@@ -128,7 +129,7 @@ import static java.util.logging.Level.*; ...@@ -128,7 +129,7 @@ import static java.util.logging.Level.*;
*/ */
@ExportedBean @ExportedBean
public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,RunT>> public abstract class Run <JobT extends Job<JobT,RunT>,RunT extends Run<JobT,RunT>>
extends Actionable implements ExtensionPoint, Comparable<RunT>, AccessControlled, PersistenceRoot, DescriptorByNameOwner { extends Actionable implements ExtensionPoint, Comparable<RunT>, AccessControlled, PersistenceRoot, DescriptorByNameOwner, OnMaster {
protected transient final JobT project; protected transient final JobT project;
......
...@@ -47,6 +47,7 @@ import hudson.util.PersistedList; ...@@ -47,6 +47,7 @@ import hudson.util.PersistedList;
import hudson.util.XStream2; import hudson.util.XStream2;
import jenkins.RestartRequiredException; import jenkins.RestartRequiredException;
import jenkins.model.Jenkins; import jenkins.model.Jenkins;
import jenkins.util.io.OnMaster;
import org.acegisecurity.Authentication; import org.acegisecurity.Authentication;
import org.acegisecurity.context.SecurityContext; import org.acegisecurity.context.SecurityContext;
import org.apache.commons.io.input.CountingInputStream; import org.apache.commons.io.input.CountingInputStream;
...@@ -104,7 +105,7 @@ import org.kohsuke.stapler.interceptor.RequirePOST; ...@@ -104,7 +105,7 @@ import org.kohsuke.stapler.interceptor.RequirePOST;
* @since 1.220 * @since 1.220
*/ */
@ExportedBean @ExportedBean
public class UpdateCenter extends AbstractModelObject implements Saveable { public class UpdateCenter extends AbstractModelObject implements Saveable, OnMaster {
private static final String UPDATE_CENTER_URL = System.getProperty(UpdateCenter.class.getName()+".updateCenterUrl","http://updates.jenkins-ci.org/"); private static final String UPDATE_CENTER_URL = System.getProperty(UpdateCenter.class.getName()+".updateCenterUrl","http://updates.jenkins-ci.org/");
......
package jenkins.util.io;
/**
* Marks the objects in Jenkins that only exist in the core
* and not on slaves.
*
* <p>
* This marker interface is for plugin developers to quickly
* tell if they can take a specific object from a master to
* a slave.
*
* (Core developers, if you find classes/interfaces that extend
* from this, please be encouraged to add them.)
*
* @author Kohsuke Kawaguchi
* @since 1.475
*/
public interface OnMaster {
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册