package hudson.model; import hudson.ExtensionList; import hudson.ExtensionPoint; import hudson.tasks.BuildStep; import jenkins.model.Jenkins; /** * Receives events that happen as a build executes {@link BuildStep}s. * @author Nicolas De Loof * @since 1.502 */ public abstract class BuildStepListener implements ExtensionPoint { /** * Called when a buildStep is performed. */ public abstract void started(AbstractBuild build, BuildStep bs, BuildListener listener); /** * Called when a buildStep has completed. */ public abstract void finished(AbstractBuild build, BuildStep bs, BuildListener listener, boolean canContinue); /** * Returns all the registered {@link BuildStepListener}s. */ public static ExtensionList all() { // TODO should have a null-safe version when Jenkins.getInstance() is null; would require changes in ExtensionList return Jenkins.getInstance().getExtensionList(BuildStepListener.class); } }