Commit b1a027e9 by Nilu

messaging engine batch

parent de6dbf00
package performa.batch;
import java.util.Date;
import javax.activation.DataSource;
import oneit.appservices.batch.ORMBatch;
import oneit.components.InitialisationParticipant;
import oneit.components.ParticipantInitialisationContext;
import oneit.email.Emailer;
import oneit.email.TextDataSource;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.logging.LoggingArea;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.StorageException;
import oneit.objstore.rdbms.filters.LessThanEqualFilter;
import oneit.utils.InitialisationException;
import oneit.utils.parsers.FieldException;
import performa.orm.ScheduledEmail;
import performa.orm.SentEmail;
public class MessagingEngineBatch extends ORMBatch
public class MessagingEngineBatch extends ORMBatch implements InitialisationParticipant
{
private Emailer emailEngine;
public static LoggingArea MESSAGING_ENGINE_BATCH = LoggingArea.createLoggingArea("MessagingEngineBatch");
@Override
......@@ -25,8 +34,32 @@ public class MessagingEngineBatch extends ORMBatch
for (ScheduledEmail scheduledEmail : scheduledEmails)
{
String messageContent = scheduledEmail.getMessageContent();
// replace tags
TextDataSource mesgBodyDataSource = new TextDataSource(messageContent);
String toEmail = scheduledEmail.getJobApplication().getCandidate().getUser().getEmail();
String fromEmail = scheduledEmail.getJobApplication().getJob().getCreatedBy().getUser().getEmail();
SentEmail sentEmail = SentEmail.createSentEmail(ot);
emailEngine.sendEmail(new String[] {toEmail}, fromEmail, scheduledEmail.getSubject() , new DataSource[]{mesgBodyDataSource});
sentEmail.setSubject(scheduledEmail.getSubject());
sentEmail.setSentDate(new Date());
sentEmail.setApplicationStatus(scheduledEmail.getApplicationStatus());
sentEmail.setMessageContent(messageContent);
sentEmail.setEmailTo(toEmail);
sentEmail.setJobApplication(scheduledEmail.getJobApplication());
scheduledEmail.delete();
}
}
@Override
public void init(ParticipantInitialisationContext context) throws InitialisationException
{
super.init(context);
emailEngine = (Emailer) context.getSingleChild("EmailEngine");
}
}
......@@ -184,9 +184,20 @@
</WHEN>
</TASK>
<TASK factory="Participant" class="oneit.appservices.batch.DefaultTask" lockName="performa">
<RUN factory="Participant" class="performa.batch.MessagingEngineBatch">
<Services factory="ConfigMgr" system="CONFIG.GLOBAL" paramname="TransactionServices"/>
<EmailEngine factory="ConfigMgr" system="CONFIG.GLOBAL" paramname="EmailEngine"/>
</RUN>
<WHEN factory="MetaComponent" component="BatchSchedule" selector="performa.runbatch">
<NODE name="schedule" class="oneit.appservices.batch.QuickSchedule">
<NODE name="period" factory="Integer" value="1"/>
</NODE>
</WHEN>
</TASK>
</NODE>
<NODE name="CONFIG.Formatting::AdminPortal">
<PARAM name="PerformaDateFormatter" factory="Participant" class="oneit.utils.text.DateFormatterFactory"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment