package com.ifsoft.jmxweb.plugin;
import org.jivesoftware.util.*;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.quartz.CronScheduleBuilder.cronSchedule;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import org.jivesoftware.openfire.user.UserManager;
import org.jivesoftware.util.EmailService;
import com.ifsoft.jmxweb.plugin.EmailSenderUtility;
public class EmailScheduler implements Job {
private static Logger Log = LoggerFactory.getLogger("JmxWebPlugin:EmailScheduler");
public Scheduler scheduler=null;
public void startMonitoring() {
try {
String schedule = JiveGlobals.getProperty("jmxweb.crontrigger.schedule", "0 0 0/12 * * ?");
scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
JobDetail job = newJob(EmailScheduler.class)
.withIdentity("job1", "group1")
.build();
CronTrigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule(schedule))
.build();
scheduler.scheduleJob(job, trigger);
} catch (SchedulerException se) {
Log.error("EmailScheduler", se);
}
}
public void stopMonitoring() {
try {
Log.info("Email Monitoring Stopped");
scheduler.shutdown(true);
} catch (SchedulerException se) {
Log.error("stopMonitoring", se);
}
}
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
Log.info( "Email Monitoring Running");
try {
EmailSenderUtility emailSenderUtility = new EmailSenderUtility();
emailSenderUtility.sendEmail();
}
catch (Throwable e) {
Log.error("Failed to send email...", e);
}
}
}