/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package hudson.plugins.emailext.plugins.recipients; import hudson.EnvVars; import hudson.Extension; import hudson.model.Job; import hudson.plugins.emailext.EmailRecipientUtils; import hudson.plugins.emailext.ExtendedEmailPublisherContext; import hudson.plugins.emailext.ExtendedEmailPublisherDescriptor; import hudson.plugins.emailext.plugins.RecipientProvider; import hudson.plugins.emailext.plugins.RecipientProviderDescriptor; import jenkins.model.Jenkins; import org.kohsuke.stapler.DataBoundConstructor; import javax.mail.MessagingException; import javax.mail.internet.InternetAddress; import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author acearl */ public class ListRecipientProvider extends RecipientProvider { @DataBoundConstructor public ListRecipientProvider() { } @Override public void addRecipients(ExtendedEmailPublisherContext context, EnvVars env, Set<InternetAddress> to, Set<InternetAddress> cc, Set<InternetAddress> bcc) { try { ExtendedEmailPublisherDescriptor descriptor = Jenkins.getActiveInstance().getDescriptorByType(ExtendedEmailPublisherDescriptor.class); descriptor.debug(context.getListener().getLogger(), "Adding recipients from project recipient list"); EmailRecipientUtils.addAddressesFromRecipientList(to, cc, bcc, EmailRecipientUtils.getRecipientList(context, context.getPublisher().recipientList), env, context.getListener()); } catch (MessagingException ex) { Logger.getLogger(ListRecipientProvider.class.getName()).log(Level.SEVERE, null, ex); } } @Extension public static final class DescriptorImpl extends RecipientProviderDescriptor { @Override public String getDisplayName() { return "Recipient List"; } @Override public boolean isApplicable(Class<? extends Job> jobType) { return !jobType.getName().equals("org.jenkinsci.plugins.workflow.job.WorkflowJob"); } } }