/**
* Copyright (c) 2009 - 2010 - OpenFARM
* Licence: MIT
*
* @Author Filipe Martins
* @Date 11-May-2010
*/
package openfarmmanager.manager.web.controller.job;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import openfarmmanager.manager.jobmonitoring.ManagerJobMonitor;
import openfarmmanager.manager.web.controller.SpringSubManager;
import openfarmmanager.manager.web.controller.job.jobs.JobMode;
import openfarmmanager.manager.web.controller.job.jobs.JobModeFactory;
import openfarmmanager.manager.web.processor.XmlInputProcessor;
import openfarmmanager.metadata.handling.IGResultSet;
import openfarmmanager.util.logging.LogManagerUtil;
import openfarmtools.interpreter.exceptions.OpenFarmException;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.springframework.web.servlet.ModelAndView;
public class JobController extends SpringSubManager
{
private static final Logger log = LogManagerUtil.getLogger(JobController.class);
@Override
public ModelAndView doStuff(HttpServletRequest request, HttpServletResponse response) throws OpenFarmException
{
ModelAndView mv = new ModelAndView("job");
Document doc = (Document)this.getProcessedObjectMap().get(XmlInputProcessor.class);
JobMode jobMode = JobModeFactory.getJobMode(doc, ManagerJobMonitor.getMonitor());
//now parse the action and check what is it supposed to do
jobMode.writeToFile();
if(jobMode instanceof IGResultSet && !((IGResultSet)jobMode).isJobFinished())
{
log.info("Job Controller received result for job file: " + ((IGResultSet)jobMode).getResultSet().getMetaBean().getVideoFile());
this.getMemHandler().incomingResultsHandler((IGResultSet)jobMode);
}
else if(jobMode instanceof IGResultSet && ((IGResultSet)jobMode).isJobFinished())
{
try
{
this.getMemHandler().saveAllMemory();
log.info("Saved job file:"+((IGResultSet)jobMode).getResultSet().getMetaBean().getVideoFile()+" to cache.");
} catch (IOException e)
{
e.printStackTrace();
throw new OpenFarmException(e.getMessage());
}
}
if(doc == null)
request.setAttribute("success", new Boolean(false));
else
request.setAttribute("success", new Boolean(true));
return mv;
}
}
|