Commit b1a027e9 by Nilu

messaging engine batch

parent de6dbf00
package performa.batch; package performa.batch;
import java.util.Date; import java.util.Date;
import javax.activation.DataSource;
import oneit.appservices.batch.ORMBatch; 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.LogLevel;
import oneit.logging.LogMgr; import oneit.logging.LogMgr;
import oneit.logging.LoggingArea; import oneit.logging.LoggingArea;
import oneit.objstore.ObjectTransaction; import oneit.objstore.ObjectTransaction;
import oneit.objstore.StorageException; import oneit.objstore.StorageException;
import oneit.objstore.rdbms.filters.LessThanEqualFilter; import oneit.objstore.rdbms.filters.LessThanEqualFilter;
import oneit.utils.InitialisationException;
import oneit.utils.parsers.FieldException; import oneit.utils.parsers.FieldException;
import performa.orm.ScheduledEmail; 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"); public static LoggingArea MESSAGING_ENGINE_BATCH = LoggingArea.createLoggingArea("MessagingEngineBatch");
@Override @Override
...@@ -25,8 +34,32 @@ public class MessagingEngineBatch extends ORMBatch ...@@ -25,8 +34,32 @@ public class MessagingEngineBatch extends ORMBatch
for (ScheduledEmail scheduledEmail : scheduledEmails) 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(); scheduledEmail.delete();
} }
} }
@Override
public void init(ParticipantInitialisationContext context) throws InitialisationException
{
super.init(context);
emailEngine = (Emailer) context.getSingleChild("EmailEngine");
}
} }
...@@ -184,9 +184,20 @@ ...@@ -184,9 +184,20 @@
</WHEN> </WHEN>
</TASK> </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>
<NODE name="CONFIG.Formatting::AdminPortal"> <NODE name="CONFIG.Formatting::AdminPortal">
<PARAM name="PerformaDateFormatter" factory="Participant" class="oneit.utils.text.DateFormatterFactory" <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