X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletModuleProducer.java;h=51427b5ffbf006dd252027fe070456244f7deaa5;hb=4451d4c8c25d46e9c405e966ff6bd016a1512f4f;hp=69be3b59196b1ea4998cf38dc239c60ac6c6071a;hpb=4529b3926a3353fde9046d7dfc7373f6680404c0;p=mir.git diff --git a/source/mircoders/servlet/ServletModuleProducer.java b/source/mircoders/servlet/ServletModuleProducer.java index 69be3b59..51427b5f 100755 --- a/source/mircoders/servlet/ServletModuleProducer.java +++ b/source/mircoders/servlet/ServletModuleProducer.java @@ -45,6 +45,7 @@ import mir.log.LoggerWrapper; import mir.producer.ProducerFactory; import mir.servlet.ServletModule; import mir.servlet.ServletModuleFailure; +import mir.util.HTTPRequestParser; import mir.util.ResourceBundleGeneratorFunction; import mircoders.global.MirGlobal; @@ -79,21 +80,21 @@ public class ServletModuleProducer extends ServletModule defaultAction="showProducerQueueStatus"; } - public void showMessage(PrintWriter aWriter, Locale aLocale, String aMessage, String anArgument1, String anArgument2) { + public void showMessage(HttpServletRequest aRequest, HttpServletResponse aResponse, String aMessage, String anArgument1, String anArgument2) { Map responseData; try { - responseData = new HashMap(); + responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)}); responseData.put("message", aMessage); responseData.put("argument1", anArgument1); responseData.put("argument2", anArgument2); - generateResponse("infomessage.template", aWriter, responseData, aLocale); + + ServletHelper.generateResponse(aResponse.getWriter(), responseData, "infomessage.template"); } catch (Throwable t) { throw new ServletModuleFailure(t); } } - public void showProducerQueueStatus(HttpServletRequest aRequest, HttpServletResponse aResponse) { Object comments; Map generationData; @@ -104,7 +105,7 @@ public class ServletModuleProducer extends ServletModule try { generator = MirGlobal.localizer().generators().makeAdminGeneratorLibrary().makeGenerator("producerqueue.template"); - generationData = ServletHelper.makeGenerationData(aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)}); + generationData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)}); generationData.put( "thisurl", "module=Producer&do=showProducerQueueStatus"); producersData = new Vector(); @@ -139,19 +140,18 @@ public class ServletModuleProducer extends ServletModule } } - public void produce(HttpServletRequest req, HttpServletResponse res) { + public void produce(HttpServletRequest aRequest, HttpServletResponse aResponse) { /* * This method will only be called by external scripts (e.g. from cron jobs). * The output therefore is very simple. - * */ try { - PrintWriter out = res.getWriter(); + PrintWriter out = aResponse.getWriter(); - if (req.getParameter("producer")!=null) { - String producerParam = req.getParameter("producer"); - String verbParam = req.getParameter("verb"); + if (aRequest.getParameter("producer")!=null) { + String producerParam = aRequest.getParameter("producer"); + String verbParam = aRequest.getParameter("verb"); MirGlobal.producerEngine().addJob(producerParam, verbParam); out.println("job added"); @@ -162,10 +162,11 @@ public class ServletModuleProducer extends ServletModule } } - public void produceAllNew(HttpServletRequest aRequest, HttpServletResponse aResponse) { + public void producerecipe(HttpServletRequest aRequest, HttpServletResponse aResponse) { try { - MirGlobal.localizer().producers().produceAllNew(); - showMessage(aResponse.getWriter(), getLocale(aRequest), "produceAllNewAddedToQueue", "", ""); + String recipe = aRequest.getParameter("recipe"); + MirGlobal.localizer().producers().produceRecipe(recipe); + showMessage(aRequest, aResponse, "recipeAddedToQueue", recipe, ""); } catch (Throwable t) { throw new ServletModuleFailure(t); @@ -180,7 +181,7 @@ public class ServletModuleProducer extends ServletModule MirGlobal.producerEngine().addJob(producerParam, verbParam); - showProducerQueueStatus(aRequest, aResponse); + ServletHelper.redirect(aResponse, "Producer", "showProducerQueueStatus"); } } catch (Throwable t) { @@ -188,7 +189,22 @@ public class ServletModuleProducer extends ServletModule } } - public void cancelAbortJob(HttpServletRequest aRequest, HttpServletResponse aResponse) { - // ML: to be coded + public void cancel(HttpServletRequest aRequest, HttpServletResponse aResponse) { + try { + HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); + + if (requestParser.getParameter("cancelall") != null) { + MirGlobal.producerEngine().cancelAllJobs(); + } + else { + List jobs = new Vector(requestParser.getParameterList("jobid")); + + MirGlobal.producerEngine().cancelJobs(jobs); + } + ServletHelper.redirect(aResponse, "Producer", "showProducerQueueStatus"); + } + catch (Throwable t) { + throw new ServletModuleFailure(t); + } } }