/*
* Created on 21/08/2006 21:07:36
*/
package net.jforum.api.integration.mail.pop;
import java.util.Iterator;
import java.util.List;
import net.jforum.dao.DataAccessDriver;
import net.jforum.entities.MailIntegration;
import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* @author Rafael Steil
* @version $Id: POPListener.java,v 1.9 2006/10/10 01:59:55 rafaelsteil Exp $
*/
public class POPListener implements Job
{
private static final Logger logger = Logger.getLogger(POPListener.class);
private static boolean working;
protected POPConnector connector = new POPConnector();
/**
* @see org.quartz.Job#execute(org.quartz.JobExecutionContext)
*/
public void execute(JobExecutionContext jobContext) throws JobExecutionException
{
if (!working) {
try {
working = true;
List integrationList = DataAccessDriver.getInstance().newMailIntegrationDAO().findAll();
POPParser parser = new POPParser();
for (Iterator iter = integrationList.iterator(); iter.hasNext(); ) {
MailIntegration integration = (MailIntegration)iter.next();
connector.setMailIntegration(integration);
try {
logger.debug("Going to check " + integration);
connector.openConnection();
parser.parseMessages(connector);
POPPostAction postAction = new POPPostAction();
postAction.insertMessages(parser);
}
finally {
connector.closeConnection();
}
}
}
finally {
working = false;
}
}
else {
logger.debug("Already working. Leaving for now.");
}
}
POPConnector getConnector()
{
return this.connector;
}
}