package hudson.plugins.jswidgets;
import hudson.Extension;
import hudson.model.AbstractBuild;
import hudson.model.listeners.RunListener;
import java.util.logging.Logger;
/**
* This listener adds a {@link JsBuildAction} to every new build.
*
* @author mfriedenhagen
*/
@SuppressWarnings("unchecked")
@Extension
public final class JsRunListener extends RunListener<AbstractBuild> {
/** The Logger. */
private static final Logger LOG = Logger.getLogger(JsRunListener.class.getName());
/**
* {@link Extension} needs parameterless constructor.
*/
public JsRunListener() {
super(AbstractBuild.class);
}
/**
* {@inheritDoc}
*
* Adds {@link JsBuildAction} to the build. Do this in <tt>onFinalized</tt>, so the XML-data of the build is not
* affected.
*/
@Override
public void onFinalized(AbstractBuild r) {
final JsBuildAction jsBuildAction = new JsBuildAction(r);
r.addAction(jsBuildAction);
LOG.fine(r.toString() + ":" + r.getActions().toString());
LOG.fine("Registering " + jsBuildAction.getDisplayName() + " for " + r);
super.onFinalized(r);
}
}