Skip to content

Commit

Permalink
Merge branch 'JENKINS-27856'
Browse files Browse the repository at this point in the history
  • Loading branch information
slide committed Apr 10, 2015
2 parents ef770bc + 6493856 commit 77e69ea
Show file tree
Hide file tree
Showing 26 changed files with 190 additions and 20 deletions.
Expand Up @@ -3,6 +3,8 @@
import hudson.Extension;
import hudson.matrix.MatrixProject;
import hudson.model.AbstractProject;
import hudson.plugins.emailext.plugins.EmailTriggerDescriptor;
import hudson.plugins.emailext.plugins.trigger.FailureTrigger;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.Mailer;
import hudson.tasks.Publisher;
Expand Down Expand Up @@ -98,6 +100,8 @@ public final class ExtendedEmailPublisherDescriptor extends BuildStepDescriptor<
private String defaultPresendScript = "";

private List<GroovyScriptPath> defaultClasspath = new ArrayList<GroovyScriptPath>();

private List<EmailTriggerDescriptor> defaultTriggers = new ArrayList<EmailTriggerDescriptor>();

/**
* This is the global emergency email address
Expand Down Expand Up @@ -325,6 +329,13 @@ public String getDefaultPresendScript() {
public List<GroovyScriptPath> getDefaultClasspath() {
return defaultClasspath;
}

public List<EmailTriggerDescriptor> getDefaultTriggers() {
if(defaultTriggers.isEmpty()) {
defaultTriggers.add((EmailTriggerDescriptor)Jenkins.getInstance().getDescriptor(FailureTrigger.class));
}
return defaultTriggers;
}

public ExtendedEmailPublisherDescriptor() {
super(ExtendedEmailPublisher.class);
Expand Down Expand Up @@ -405,6 +416,27 @@ public boolean configure(StaplerRequest req, JSONObject formData)
listId = null;
}

List<String> classes = new ArrayList<String>();
if(formData.optJSONArray("defaultTriggers") != null) {
for(Object tName : formData.getJSONArray("defaultTriggers")) {
String triggerName = tName.toString();
classes.add(triggerName);
}
} else if(StringUtils.isNotEmpty(formData.optString("defaultTriggers"))) {
String triggerName = formData.getString("defaultTriggers");
classes.add(triggerName);
}

if(!classes.isEmpty()) {
defaultTriggers.clear();
for(String triggerName : classes) {
EmailTriggerDescriptor d = (EmailTriggerDescriptor)Jenkins.getInstance().getDescriptorByName(triggerName);
if(d != null) {
defaultTriggers.add(d);
}
}
}

save();
return super.configure(req, formData);
}
Expand Down
@@ -1,6 +1,8 @@
package hudson.plugins.emailext.plugins;

import hudson.model.Descriptor;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -35,6 +37,19 @@ public void addDefaultRecipientProvider(RecipientProvider provider) {
public List<RecipientProvider> getDefaultRecipientProviders() {
return defaultRecipientProviders;
}

public abstract EmailTrigger createDefault();

protected EmailTrigger _createDefault() {
EmailTrigger trigger;
try {
Constructor ctor = clazz.getConstructor(List.class, String.class, String.class, String.class, String.class, String.class, int.class, String.class);
trigger = (EmailTrigger)ctor.newInstance(defaultRecipientProviders, "", "$PROJECT_DEFAULT_REPLYTO", "$PROJECT_DEFAULT_SUBJECT", "$PROJECT_DEFAULT_CONTENT", "", 0, "project");
} catch(Exception e) {
trigger = null;
}
return trigger;
}

public boolean isWatchable() { return true; }

Expand All @@ -57,5 +72,4 @@ public boolean getDefaultSendToList() {
public boolean getDefaultSendToRequester() {
return false;
}

}
}
Expand Up @@ -44,6 +44,11 @@ public DescriptorImpl() {
@Override
public String getDisplayName() {
return TRIGGER_NAME;
}
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -18,7 +18,6 @@
import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.control.customizers.ImportCustomizer;
import org.kohsuke.groovy.sandbox.SandboxTransformer;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;

public abstract class AbstractScriptTrigger extends EmailTrigger {
Expand Down
Expand Up @@ -46,6 +46,11 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}

Expand Up @@ -54,5 +54,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -2,14 +2,13 @@

import hudson.Extension;
import hudson.model.AbstractBuild;
import jenkins.model.Jenkins;
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;
Expand All @@ -19,27 +18,27 @@ public class FailureTrigger extends EmailTrigger {

public static final String TRIGGER_NAME = "Failure - Any";

@Deprecated
public static FailureTrigger createDefault() {
return new FailureTrigger(Collections.<RecipientProvider>singletonList(new ListRecipientProvider()), "", "$PROJECT_DEFAULT_REPLYTO", "$PROJECT_DEFAULT_SUBJECT", "$PROJECT_DEFAULT_CONTENT", "", 0, "project");
DescriptorImpl descriptor = (DescriptorImpl)Jenkins.getInstance().getDescriptor(FailureTrigger.class);
return (FailureTrigger)descriptor.createDefault();
}

@DataBoundConstructor
public FailureTrigger(List<RecipientProvider> recipientProviders, String recipientList, String replyTo, String subject, String body, String attachmentsPattern, int attachBuildLog, String contentType) {
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) {
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;
return build.getResult() == Result.FAILURE;
}

@Extension
Expand All @@ -52,6 +51,11 @@ public DescriptorImpl() {
@Override
public String getDisplayName() {
return TRIGGER_NAME;
}
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
@@ -1,6 +1,7 @@
package hudson.plugins.emailext.plugins.trigger;

import hudson.Extension;
import hudson.plugins.emailext.plugins.EmailTrigger;
import hudson.plugins.emailext.plugins.RecipientProvider;
import java.util.List;

Expand All @@ -27,6 +28,10 @@ public static final class DescriptorImpl extends NthFailureTrigger.DescriptorImp
public String getDisplayName() {
return TRIGGER_NAME;
}

public EmailTrigger createDefault() {
return _createDefault();
}
}

/**
Expand Down
Expand Up @@ -54,5 +54,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -58,5 +58,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -72,5 +72,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -63,5 +63,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -44,5 +44,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
@@ -1,6 +1,7 @@
package hudson.plugins.emailext.plugins.trigger;

import hudson.Extension;
import hudson.plugins.emailext.plugins.EmailTrigger;
import hudson.plugins.emailext.plugins.EmailTriggerDescriptor;
import hudson.plugins.emailext.plugins.RecipientProvider;
import java.util.List;
Expand Down Expand Up @@ -38,5 +39,10 @@ public String getDisplayName() {
public boolean isWatchable() {
return false;
}

@Override
public EmailTrigger createDefault() {
return new PreBuildScriptTrigger(defaultRecipientProviders, "", "$PROJECT_DEFAULT_REPLYTO", "$PROJECT_DEFAULT_SUBJECT", "$PROJECT_DEFAULT_CONTENT", "", 0, "project", "");
}
}
}
Expand Up @@ -46,5 +46,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -74,5 +74,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
@@ -1,6 +1,7 @@
package hudson.plugins.emailext.plugins.trigger;

import hudson.Extension;
import hudson.plugins.emailext.plugins.EmailTrigger;
import hudson.plugins.emailext.plugins.EmailTriggerDescriptor;
import hudson.plugins.emailext.plugins.RecipientProvider;
import hudson.plugins.emailext.plugins.recipients.ListRecipientProvider;
Expand Down Expand Up @@ -37,10 +38,15 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public boolean isWatchable() {
return false;
}

@Override
public EmailTrigger createDefault() {
return new ScriptTrigger(defaultRecipientProviders, "", "$PROJECT_DEFAULT_REPLYTO", "$PROJECT_DEFAULT_SUBJECT", "$PROJECT_DEFAULT_CONTENT", "", 0, "project", "");
}
}
}
@@ -1,6 +1,7 @@
package hudson.plugins.emailext.plugins.trigger;

import hudson.Extension;
import hudson.plugins.emailext.plugins.EmailTrigger;
import hudson.plugins.emailext.plugins.RecipientProvider;
import java.util.List;
import org.kohsuke.stapler.DataBoundConstructor;
Expand All @@ -26,5 +27,10 @@ public static final class DescriptorImpl extends NthFailureTrigger.DescriptorImp
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -56,5 +56,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -54,5 +54,10 @@ public DescriptorImpl() {
public String getDisplayName() {
return TRIGGER_NAME;
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}
Expand Up @@ -55,6 +55,11 @@ public DescriptorImpl() {
@Override
public String getDisplayName() {
return TRIGGER_NAME;
}
}

@Override
public EmailTrigger createDefault() {
return _createDefault();
}
}
}

0 comments on commit 77e69ea

Please sign in to comment.