package org.sakaiproject.component.app.scheduler.jobs.eventpurge;
import org.quartz.JobExecutionException;
import org.sakaiproject.api.app.scheduler.events.TriggerEventManager;
import org.sakaiproject.component.app.scheduler.jobs.AbstractConfigurableJob;
import java.util.Calendar;
import java.util.Date;
/**
* Created by IntelliJ IDEA.
* User: duffy
* Date: Aug 27, 2010
* Time: 2:30:20 PM
* To change this template use File | Settings | File Templates.
*/
public class EventLogPurgeJob extends AbstractConfigurableJob
{
public static String
NUMBER_DAYS = "number.days";
private TriggerEventManager
manager = null;
@Override
public void runJob() throws JobExecutionException
{
final String
noDays = getConfiguredProperty (NUMBER_DAYS);
if (noDays == null || noDays.trim().length() == 0)
{
throw new JobExecutionException("job improperly configured - number of days not set for purge cutoff");
}
final TriggerEventManager
eMgr = getTriggerEventManager();
if (eMgr == null)
throw new JobExecutionException ("job is not configured with a TriggerEventManager, aborting");
final Calendar
cal = Calendar.getInstance();
int
numDays = 0;
try
{
numDays = Integer.parseInt(noDays);
}
catch (NumberFormatException nfe)
{
throw new JobExecutionException ("job improperly configured - number of days for cutoff must be an integer greater than 1");
}
if (numDays < 1)
{
throw new JobExecutionException ("job improperly configured - number of days must be 1 or more");
}
cal.add(Calendar.DAY_OF_YEAR, -numDays);
Date
cutoffDate = new Date(cal.getTimeInMillis());
eMgr.purgeEvents(cutoffDate);
}
public void setTriggerEventManager (TriggerEventManager tMgr)
{
manager = tMgr;
}
public TriggerEventManager getTriggerEventManager()
{
return manager;
}
}