Package hudson.plugins.emailext.plugins.trigger

Source Code of hudson.plugins.emailext.plugins.trigger.NthFailureTrigger$DescriptorImpl

package hudson.plugins.emailext.plugins.trigger;

import hudson.model.AbstractBuild;
import hudson.model.Result;
import hudson.model.TaskListener;
import hudson.plugins.emailext.ExtendedEmailPublisher;
import hudson.plugins.emailext.plugins.EmailTrigger;
import hudson.plugins.emailext.plugins.EmailTriggerDescriptor;
import hudson.plugins.emailext.plugins.RecipientProvider;
import hudson.plugins.emailext.plugins.recipients.DevelopersRecipientProvider;
import hudson.plugins.emailext.plugins.recipients.ListRecipientProvider;
import java.util.List;

/**
* Triggers an email after the specified number of consecutive failures
* (preceeded by a successful build).
*/
public abstract class NthFailureTrigger extends EmailTrigger {

    protected int failureCount;
   
    public NthFailureTrigger(int failureCount, 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);
        this.failureCount = failureCount;
    }
   
    @Deprecated
    public NthFailureTrigger(int failureCount, 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);
        this.failureCount = failureCount;
    }

    @Override
    public boolean trigger(AbstractBuild<?, ?> build, TaskListener listener) {

        // Work back through the failed builds.
        for (int i = 0; i < failureCount; i++) {
            if (build == null) {
                // We don't have enough history to have reached the failure count.
                return false;
            }

            Result buildResult = build.getResult();
            if (buildResult != Result.FAILURE) {
                return false;
            }

            build = ExtendedEmailPublisher.getPreviousBuild(build, listener);
        }

        return (build == null || build.getResult() == Result.SUCCESS || build.getResult() == Result.UNSTABLE);
    }

    public abstract static class DescriptorImpl extends EmailTriggerDescriptor {

        public DescriptorImpl() {
            addTriggerNameToReplace(FailureTrigger.TRIGGER_NAME);
            addTriggerNameToReplace(StillFailingTrigger.TRIGGER_NAME);
           
            addDefaultRecipientProvider(new DevelopersRecipientProvider());
            addDefaultRecipientProvider(new ListRecipientProvider());
        }
    }
}
TOP

Related Classes of hudson.plugins.emailext.plugins.trigger.NthFailureTrigger$DescriptorImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.