Created
April 2, 2017 15:47
-
-
Save pasadinhas/d59f3d3de68bd1d4b0310f8b32c9e992 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package pt.ist.fenix.webapp; | |
| import org.fenixedu.academic.domain.Installation; | |
| import org.fenixedu.academic.domain.util.email.CoordinatorSender; | |
| import org.fenixedu.academic.domain.util.email.ExecutionCourseSender; | |
| import org.fenixedu.academic.domain.util.email.PersonSender; | |
| import org.fenixedu.academic.domain.util.email.Sender; | |
| import org.fenixedu.bennu.core.domain.Bennu; | |
| import org.fenixedu.bennu.core.groups.Group; | |
| import org.fenixedu.bennu.scheduler.custom.CustomTask; | |
| import org.fenixedu.messaging.core.domain.MessageStoragePolicy; | |
| import java.util.Collection; | |
| import java.util.Set; | |
| import java.util.stream.Collectors; | |
| public class MigrateSenders extends CustomTask { | |
| @Override | |
| public void runTask() throws Exception { | |
| Bennu bennu = Bennu.getInstance(); | |
| Set<Sender> senders = bennu.getUtilEmailSendersSet(); | |
| senders.stream() | |
| .forEach(s -> { | |
| // Fetch generic data from sender | |
| String from = s.getFromAddress(); | |
| String as = s.getFromAddress(); | |
| Group members = s.getMembers(); | |
| MessageStoragePolicy storagePolicy = MessageStoragePolicy.internalize("A"); | |
| boolean htmlEnabled = false; | |
| String replyTo = Installation.getInstance().getInstituitionalEmailAddress("noreply"); | |
| Collection<Group> recipients = | |
| s.getRecipientsSet().stream().map(r -> r.getMembers()).collect(Collectors.toSet()); | |
| // Fetch specific information from sender | |
| // TODO: decide on the default replyTo | |
| if (s instanceof ExecutionCourseSender) { | |
| } else if (s instanceof PersonSender) { | |
| replyTo = ((PersonSender) s).getPerson().getDefaultEmailAddressValue(); | |
| } else if (s instanceof CoordinatorSender) { | |
| } | |
| // Create new sender | |
| org.fenixedu.messaging.core.domain.Sender sender = | |
| org.fenixedu.messaging.core.domain.Sender.from(from).as(as).members(members) | |
| .storagePolicy(storagePolicy).htmlEnabled(htmlEnabled).replyTo(replyTo).recipients(recipients) | |
| .build(); | |
| // Link new sender to the respective owner | |
| // TODO: still missing DelegateSender | |
| if (s instanceof PersonSender) { | |
| ((PersonSender) s).getPerson().setEmailSender(sender); | |
| } else if (s instanceof ExecutionCourseSender) { | |
| ((ExecutionCourseSender) s).getCourse().setEmailSender(sender); | |
| } else if (s instanceof CoordinatorSender) { | |
| ((CoordinatorSender) s).getDegree().setEmailSender(sender); | |
| } | |
| System.out.print("."); | |
| }); | |
| } | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment