package hudson.plugins.emailext.plugins.trigger;
import hudson.Extension;
import hudson.model.AbstractBuild;
import hudson.model.Result;
import hudson.model.TaskListener;
import hudson.plugins.emailext.plugins.EmailTrigger;
import hudson.plugins.emailext.plugins.EmailTriggerDescriptor;
import hudson.plugins.emailext.plugins.recipients.DevelopersRecipientProvider;
import hudson.plugins.emailext.plugins.RecipientProvider;
import hudson.plugins.emailext.plugins.recipients.ListRecipientProvider;
import java.util.Collections;
import java.util.List;
import org.kohsuke.stapler.DataBoundConstructor;
public class FailureTrigger extends EmailTrigger {
public static final String TRIGGER_NAME = "Failure - Any";
public static FailureTrigger createDefault() {
return new FailureTrigger(Collections.<RecipientProvider>singletonList(new ListRecipientProvider()), "", "$PROJECT_DEFAULT_REPLYTO", "$PROJECT_DEFAULT_SUBJECT", "$PROJECT_DEFAULT_CONTENT", "", 0, "project");
}
@DataBoundConstructor
public FailureTrigger(List<RecipientProvider> recipientProviders, String recipientList, String replyTo, String subject, String body, String attachmentsPattern, int attachBuildLog, String contentType) {
super(recipientProviders, recipientList, replyTo, subject, body, attachmentsPattern, attachBuildLog, contentType);
}
@Deprecated
public FailureTrigger(boolean sendToList, boolean sendToDevs, boolean sendToRequester, boolean sendToCulprits, String recipientList, String replyTo, String subject, String body, String attachmentsPattern, int attachBuildLog, String contentType) {
super(sendToList, sendToDevs, sendToRequester, sendToCulprits,recipientList, replyTo, subject, body, attachmentsPattern, attachBuildLog, contentType);
}
@Override
public boolean trigger(AbstractBuild<?, ?> build, TaskListener listener) {
Result buildResult = build.getResult();
if (buildResult == Result.FAILURE) {
return true;
}
return false;
}
@Extension
public static final class DescriptorImpl extends EmailTriggerDescriptor {
public DescriptorImpl() {
addDefaultRecipientProvider(new DevelopersRecipientProvider());
}
@Override
public String getDisplayName() {
return TRIGGER_NAME;
}
}
}