Index: pom.xml
===================================================================
--- pom.xml (revision 40809)
+++ pom.xml (working copy)
@@ -41,9 +41,9 @@
true
- org.jvnet.hudson.plugins
+ org.jenkins-ci.plugins
email-ext
- 2.7
+ 2.18
compile
true
Index: src/main/java/configurationslicing/email/CoreEmailSlicer.java
===================================================================
--- src/main/java/configurationslicing/email/CoreEmailSlicer.java (revision 40809)
+++ src/main/java/configurationslicing/email/CoreEmailSlicer.java (working copy)
@@ -1,6 +1,7 @@
package configurationslicing.email;
import java.io.IOException;
+import java.util.List;
import hudson.Extension;
import hudson.maven.MavenModuleSet;
@@ -86,6 +87,12 @@
return false;
}
}
+ public boolean removeTrigger(AbstractProject project) {
+ return false;
+ }
+ public boolean addTrigger(AbstractProject project, List values) {
+ return false;
+ }
}
@SuppressWarnings("unchecked")
private static class MavenEmailProjectHandler implements ProjectHandler {
@@ -136,6 +143,12 @@
return false;
}
}
+ public boolean removeTrigger(AbstractProject project) {
+ return false;
+ }
+ public boolean addTrigger(AbstractProject project, List values) {
+ return false;
+ }
}
-
+
}
Index: src/main/java/configurationslicing/email/ExtEmailSlicer.java
===================================================================
--- src/main/java/configurationslicing/email/ExtEmailSlicer.java (revision 40809)
+++ src/main/java/configurationslicing/email/ExtEmailSlicer.java (working copy)
@@ -39,7 +39,7 @@
public ExtEmailSliceSpec() {
super(",", "Editable Email Notification", "emailext");
}
-
+
@Override
protected ProjectHandler getProjectHandler(AbstractProject project) {
return this;
@@ -82,13 +82,12 @@
EmailType email = new EmailType();
email.setSendToDevelopers(true);
email.setSendToRecipientList(true);
+
+ // there is no way to get this text from the plugin itself
+ email.setBody("$DEFAULT_CONTENT");
+ email.setSubject("$DEFAULT_SUBJECT");
trigger.setEmail(email);
publisher.getConfiguredTriggers().add(trigger);
-
- // there is no way to get this text from the plugin itself
- publisher.defaultContent = "$DEFAULT_CONTENT";
- publisher.defaultSubject = "$DEFAULT_SUBJECT";
-
publishers.add(publisher);
return true;
} else {
@@ -105,6 +104,14 @@
return false;
}
}
+
+ public boolean removeTrigger(AbstractProject project) {
+ return false;
+ }
+
+ public boolean addTrigger(AbstractProject project, List values) {
+ return false;
+ }
}
-
+
}
Index: src/main/java/configurationslicing/email/ProjectHandler.java
===================================================================
--- src/main/java/configurationslicing/email/ProjectHandler.java (revision 40809)
+++ src/main/java/configurationslicing/email/ProjectHandler.java (working copy)
@@ -1,6 +1,7 @@
package configurationslicing.email;
import java.io.IOException;
+import java.util.List;
import hudson.model.AbstractProject;
@@ -12,4 +13,6 @@
boolean addMailer(AbstractProject project) throws IOException;
boolean setRecipients(AbstractProject project, String recipients) throws IOException;
+ boolean removeTrigger(AbstractProject project);
+ boolean addTrigger(AbstractProject project, List values);
}
Index: src/main/java/configurationslicing/emailTrigger/AbstractTriggerSliceSpec.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/AbstractTriggerSliceSpec.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/AbstractTriggerSliceSpec.java (working copy)
@@ -0,0 +1,223 @@
+package configurationslicing.emailTrigger;
+
+import hudson.model.AbstractProject;
+import hudson.model.Descriptor;
+import hudson.model.Hudson;
+import hudson.plugins.emailext.EmailType;
+import hudson.plugins.emailext.ExtendedEmailPublisher;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.tasks.Publisher;
+import hudson.util.DescribableList;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
+
+import configurationslicing.email.AbstractEmailSliceSpec;
+import configurationslicing.email.ProjectHandler;
+
+@SuppressWarnings("unchecked")
+public abstract class AbstractTriggerSliceSpec extends AbstractEmailSliceSpec
+ implements ProjectHandler {
+
+ protected static final String DISABLED = "(Disabled)";
+ protected static final String SEPARATOR = ",";
+
+ protected AbstractTriggerSliceSpec(String joinString, String name,
+ String url) {
+ super(joinString, name, url);
+ }
+
+
+ public abstract String getTrigger();
+
+ public abstract EmailTrigger createTrigger();
+
+ protected ProjectHandler getProjectHandler(AbstractProject project) {
+ return this;
+ }
+
+ @Override
+ public String getConfiguredValueDescription() {
+ return "Recipient List, Committers, Requester, Culprits (e.g. true,true,false,true)"
+ + "- Send to Recipient List (true/false)
"
+ + "- Send to Committers (true/false)
"
+ + "- Send to Requester (true/false)
"
+ + "- Send to Culprits (true/false)
";
+ }
+
+ public String getNotActivatedMessage() {
+ return "\"Editable Email Notification\" is not activated for these jobs! \n"
+ + "Activate it first under the point \"Editable Email Notification\" in "
+ + "the Configuration Slicing, before adding any triggers!";
+ }
+
+ public ExtendedEmailPublisher getExtMailer(AbstractProject project) {
+ DescribableList> publishers = project
+ .getPublishersList();
+ Descriptor descriptor = Hudson.getInstance().getDescriptor(
+ ExtendedEmailPublisher.class);
+ Publisher emailPublisher = publishers.get(descriptor);
+ return (ExtendedEmailPublisher) emailPublisher;
+ }
+
+ @Override
+ public List getValues(AbstractProject, ?> project) {
+
+ String trigger = null;
+ boolean triggerConfigured = false;
+ List values = new ArrayList();
+ ExtendedEmailPublisher mailer = getExtMailer(project);
+ if (mailer != null) {
+
+ if (!mailer.isConfigured()) {
+ trigger = DISABLED;
+ values.add(trigger);
+ } else {
+ List configuredTriggers = mailer.getConfiguredTriggers();
+ for (EmailTrigger emailTrigger : configuredTriggers) {
+
+ if (emailTrigger.getDescriptor().getTriggerName().equals(getTrigger())) {
+ trigger = emailTrigger.getEmail().getSendToRecipientList() + SEPARATOR
+ + emailTrigger.getEmail().getSendToDevelopers() + SEPARATOR
+ + emailTrigger.getEmail().isSendToRequester() + SEPARATOR
+ + emailTrigger.getEmail().getIncludeCulprits();
+ values.add(trigger);
+ triggerConfigured = true;
+ }
+ }
+ if (!triggerConfigured) {
+ trigger = DISABLED;
+ values.add(trigger);
+ }
+ }
+ } else {
+ trigger = getNotActivatedMessage();
+ values.add(trigger);
+ }
+ return values;
+ }
+
+ public boolean setValues(AbstractProject, ?> project, List set) {
+
+ String configLine;
+ List values = new ArrayList();
+ boolean disabled = false;
+ configLine = set.iterator().next();
+
+ if (DISABLED.equals(configLine) || StringUtils.isEmpty(configLine)
+ || configLine == null) {
+ disabled = true;
+ } else {
+ final String[] split = configLine.split(SEPARATOR);
+ if (split.length == 4) {
+ values.add(split[0]);
+ values.add(split[1]);
+ values.add(split[2]);
+ values.add(split[3]);
+ } else {
+ disabled = true;
+ }
+ }
+
+ boolean saved = false;
+ boolean oneSaved = false;
+ ProjectHandler handler = getProjectHandler(project);
+
+ if (disabled) {
+ oneSaved = handler.removeTrigger(project);
+ } else {
+ oneSaved = handler.addTrigger(project, values);
+ }
+ if (oneSaved) {
+ try {
+ project.save();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ saved = true;
+ }
+ return saved;
+ }
+
+ public boolean removeTrigger(AbstractProject project) {
+ ExtendedEmailPublisher mailer = getExtMailer(project);
+ if (mailer != null) {
+ List configuredTriggers = mailer
+ .getConfiguredTriggers();
+ for (EmailTrigger emailTrigger : configuredTriggers) {
+ if (emailTrigger.getDescriptor().getTriggerName()
+ .equals(getTrigger())) {
+ configuredTriggers.remove(emailTrigger);
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public boolean addTrigger(AbstractProject project, List values) {
+ boolean recipientList = false;
+ boolean developers = false;
+ boolean requester = false;
+ boolean includeCulprits = false;
+
+ ExtendedEmailPublisher mailer = getExtMailer(project);
+
+ if (mailer != null) {
+ recipientList = Boolean.parseBoolean(values.get(0));
+ developers = Boolean.parseBoolean(values.get(1));
+ requester = Boolean.parseBoolean(values.get(2));
+ includeCulprits = Boolean.parseBoolean(values.get(3));
+
+ List configuredTriggers = mailer
+ .getConfiguredTriggers();
+ for (EmailTrigger emailTrigger : configuredTriggers) {
+ if (emailTrigger.getDescriptor().getTriggerName()
+ .equals(getTrigger())) {
+ emailTrigger.getEmail().setSendToRecipientList(
+ recipientList);
+ emailTrigger.getEmail().setSendToDevelopers(developers);
+ emailTrigger.getEmail().setSendToRequester(requester);
+ emailTrigger.getEmail().setIncludeCulprits(includeCulprits);
+ return true;
+ }
+ }
+ EmailTrigger trigger = createTrigger();
+ EmailType email = new EmailType();
+ email.setBody("$DEFAULT_CONTENT");
+ email.setSubject("$DEFAULT_SUBJECT");
+ email.setSendToRecipientList(recipientList);
+ email.setSendToDevelopers(developers);
+ email.setSendToRequester(requester);
+ email.setIncludeCulprits(includeCulprits);
+ trigger.setEmail(email);
+ configuredTriggers.add(trigger);
+
+ return true;
+
+ } else {
+ return false;
+ }
+ }
+
+ public String getRecipients(AbstractProject project) {
+ return null;
+ }
+
+ public boolean removeMailer(AbstractProject project) throws IOException {
+ return false;
+ }
+
+ public boolean addMailer(AbstractProject project) throws IOException {
+ return false;
+ }
+
+ public boolean setRecipients(AbstractProject project, String recipients)
+ throws IOException {
+ return false;
+ }
+
+}
\ No newline at end of file
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailAbortedTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailAbortedTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailAbortedTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.AbortedTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailAbortedTrigger extends UnorderedStringSlicer> {
+
+ public ExtEmailAbortedTrigger() {
+ super(new ExtEmailAbortedTriggerSliceSpec());
+ }
+
+ public static class ExtEmailAbortedTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailAbortedTriggerSliceSpec() {
+ super(",", "Editable Email Notification - Aborted Trigger", "emailextabortedtrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return AbortedTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new AbortedTrigger();
+ }
+
+ }
+
+}
\ No newline at end of file
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailFailureTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailFailureTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailFailureTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.FailureTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailFailureTrigger extends UnorderedStringSlicer> {
+
+ public ExtEmailFailureTrigger() {
+ super(new ExtEmailFailureTriggerSliceSpec());
+ }
+
+ public static class ExtEmailFailureTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailFailureTriggerSliceSpec() {
+ super(",", "Editable Email Notification - Failure Trigger", "emailextfailuretrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return FailureTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new FailureTrigger();
+ }
+
+ }
+
+}
\ No newline at end of file
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailFixedTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailFixedTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailFixedTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.FixedTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailFixedTrigger extends UnorderedStringSlicer>{
+
+ public ExtEmailFixedTrigger() {
+ super(new ExtEmailFixedTriggerSliceSpec());
+ }
+
+ public static class ExtEmailFixedTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailFixedTriggerSliceSpec(){
+ super(",", "Editable Email Notification - Fixed Trigger", "emailextfixedtrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return FixedTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new FixedTrigger();
+ }
+
+ }
+
+}
\ No newline at end of file
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailImprovementTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailImprovementTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailImprovementTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.ImprovementTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailImprovementTrigger extends UnorderedStringSlicer> {
+
+ public ExtEmailImprovementTrigger() {
+ super(new ExtEmailImprovementTriggerSliceSpec());
+ }
+
+ public static class ExtEmailImprovementTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailImprovementTriggerSliceSpec() {
+ super(",", "Editable Email Notification - Improvement Trigger", "emailextimprovementtrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return ImprovementTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new ImprovementTrigger();
+ }
+
+ }
+
+}
\ No newline at end of file
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailNotBuildTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailNotBuildTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailNotBuildTrigger.java (working copy)
@@ -0,0 +1,33 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.NotBuiltTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailNotBuildTrigger extends UnorderedStringSlicer>{
+
+ public ExtEmailNotBuildTrigger(){
+ super(new ExtEmailNotBuildTriggerSliceSpec());
+ }
+
+ public static class ExtEmailNotBuildTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailNotBuildTriggerSliceSpec() {
+ super(",", "Editable Email Notification - Not-Build Trigger", "emailextnotbuildtrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return NotBuiltTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new NotBuiltTrigger();
+ }
+ }
+
+}
\ No newline at end of file
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailPreBuildTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailPreBuildTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailPreBuildTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.PreBuildTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailPreBuildTrigger extends UnorderedStringSlicer> {
+
+ public ExtEmailPreBuildTrigger() {
+ super(new ExtEmailPreBuildTriggerSliceSpec());
+ }
+
+ public static class ExtEmailPreBuildTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailPreBuildTriggerSliceSpec() {
+ super(",", "Editable Email Notification - Pre-Build Trigger", "emailextprebuildtrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return PreBuildTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new PreBuildTrigger();
+ }
+
+ }
+
+}
\ No newline at end of file
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailRegressionTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailRegressionTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailRegressionTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.RegressionTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailRegressionTrigger extends UnorderedStringSlicer> {
+
+ public ExtEmailRegressionTrigger() {
+ super(new ExtEmailRegressionTriggerSliceSpec());
+ }
+
+ public static class ExtEmailRegressionTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailRegressionTriggerSliceSpec() {
+ super(",", "Editable Email Notification - Regression Trigger", "emailextregressiontrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return RegressionTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new RegressionTrigger();
+ }
+
+ }
+
+}
\ No newline at end of file
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailStillFailingTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailStillFailingTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailStillFailingTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.StillFailingTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailStillFailingTrigger extends UnorderedStringSlicer> {
+
+ public ExtEmailStillFailingTrigger() {
+ super(new ExtEmailStillFailingTriggerSliceSpec());
+ }
+
+ public static class ExtEmailStillFailingTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailStillFailingTriggerSliceSpec() {
+ super(",", "Editable Email Notification - Still-Failing Trigger", "emailextstillfailingtrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return StillFailingTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new StillFailingTrigger();
+ }
+
+ }
+
+}
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailStillUnstableTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailStillUnstableTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailStillUnstableTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.StillUnstableTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailStillUnstableTrigger extends UnorderedStringSlicer> {
+
+ public ExtEmailStillUnstableTrigger() {
+ super(new ExtEmaiStilllUnstableTriggerSliceSpec());
+ }
+
+ public static class ExtEmaiStilllUnstableTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmaiStilllUnstableTriggerSliceSpec() {
+ super(",", "Editable Email Notification - Still-Unstable Trigger", "emailextstillunstabletrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return StillUnstableTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new StillUnstableTrigger();
+ }
+
+ }
+
+}
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailSuccessTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailSuccessTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailSuccessTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.SuccessTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailSuccessTrigger extends UnorderedStringSlicer> {
+
+ public ExtEmailSuccessTrigger() {
+ super(new ExtEmailSuccessTriggerSliceSpec());
+ }
+
+ public static class ExtEmailSuccessTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailSuccessTriggerSliceSpec() {
+ super(",", "Editable Email Notification - Success Trigger", "emailextsuccesstrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return SuccessTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new SuccessTrigger();
+ }
+
+ }
+
+}
\ No newline at end of file
Index: src/main/java/configurationslicing/emailTrigger/ExtEmailUnstableTrigger.java
===================================================================
--- src/main/java/configurationslicing/emailTrigger/ExtEmailUnstableTrigger.java (revision 0)
+++ src/main/java/configurationslicing/emailTrigger/ExtEmailUnstableTrigger.java (working copy)
@@ -0,0 +1,34 @@
+package configurationslicing.emailTrigger;
+
+import hudson.Extension;
+import hudson.model.AbstractProject;
+import hudson.plugins.emailext.plugins.EmailTrigger;
+import hudson.plugins.emailext.plugins.trigger.UnstableTrigger;
+import configurationslicing.UnorderedStringSlicer;
+
+@Extension
+public class ExtEmailUnstableTrigger extends UnorderedStringSlicer>{
+
+ public ExtEmailUnstableTrigger() {
+ super(new ExtEmailUnstableTriggerSliceSpec());
+ }
+
+ public static class ExtEmailUnstableTriggerSliceSpec extends AbstractTriggerSliceSpec {
+
+ public ExtEmailUnstableTriggerSliceSpec(){
+ super(",", "Editable Email Notification - Unstable Trigger", "emailextunstabletrigger");
+ }
+
+ @Override
+ public String getTrigger() {
+ return UnstableTrigger.TRIGGER_NAME;
+ }
+
+ @Override
+ public EmailTrigger createTrigger() {
+ return new UnstableTrigger();
+ }
+
+ }
+
+}
\ No newline at end of file