/** * */ package nl.ipo.cds.executor; import nl.idgis.commons.jobexecutor.AbstractJob; import nl.idgis.commons.jobexecutor.Job; import nl.idgis.commons.jobexecutor.Job.Status; import nl.idgis.commons.jobexecutor.JobCollector; import nl.ipo.cds.dao.ManagerDao; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; /** * @author Rob * */ public class JobCollectorImpl implements JobCollector { private static Log log = LogFactory.getLog(JobCollector.class); private ManagerDao managerDao; public JobCollectorImpl(final ManagerDao managerDao){ this.managerDao = managerDao; } @Override @Transactional (propagation = Propagation.REQUIRED) public Job nextJob() { log.debug("Fetching next job"); AbstractJob job = managerDao.getLastJob(); if (job==null){ log.debug("No job"); return null; } log.debug("Job found: setting status to PREPARED"); job.setStatus(Status.PREPARED); managerDao.update(job); return job; } }