X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletModuleProducer.java;h=f9d820b4aec349cd36921ec956f9978ed9ad8f40;hb=eb87de01924c0e179dc4d056d9ff8842991c5128;hp=9004e8f398aeadf2c869a7116ccbb4c279d2f604;hpb=198a670a8d27f18357e201bf0ec797239b627cd6;p=mir.git diff --git a/source/mircoders/servlet/ServletModuleProducer.java b/source/mircoders/servlet/ServletModuleProducer.java index 9004e8f3..f9d820b4 100755 --- a/source/mircoders/servlet/ServletModuleProducer.java +++ b/source/mircoders/servlet/ServletModuleProducer.java @@ -10,9 +10,11 @@ import freemarker.template.*; import mir.servlet.*; import mir.misc.*; +import mir.producer.*; import mircoders.producer.*; import mircoders.entity.*; +import mircoders.global.*; /* Verteilerservlet, dass je nach Parameter task die Klasse Producer"TASK" * ueber die Methode handle(); aufruft @@ -27,7 +29,7 @@ public class ServletModuleProducer extends ServletModule public static ServletModule getInstance() { return instance; } private ServletModuleProducer() { - theLog = Logfile.getInstance(Configuration.getProperty("Home") + Configuration.getProperty("ServletModule.Producer.Logfile")); + theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.Producer.Logfile")); defaultAction="produce"; } @@ -37,29 +39,48 @@ public class ServletModuleProducer extends ServletModule { try { PrintWriter out = res.getWriter(); - String taskParam = req.getParameter("task"); - String forcedParam = req.getParameter("forced"); - String syncParam = req.getParameter("sync"); - theLog.printInfo("Starting Task: " + taskParam); - if (taskParam == null) { - throw new ServletModuleException("Kein Task angegeben!"); - } else { - Class producerModule = Class.forName("mircoders.producer.Producer" + taskParam); - Producer producer = (Producer)producerModule.newInstance(); - HttpSession session=req.getSession(false); - EntityUsers user = (EntityUsers)session.getAttribute("login.uid"); - - if (forcedParam!=null && !forcedParam.equals("")) { - if (syncParam!=null && !syncParam.equals("")) { - producer.handle(out, user, true, true); - } else { - producer.handle(out, user, true,false); + + + if (req.getParameter("producer")!=null) { + // ML: new producer system: + + String producerParam = req.getParameter("producer"); + String verbParam = req.getParameter("verb"); + + ProducerFactory factory = (ProducerFactory) MirGlobal.localizer().producers().factories().get(producerParam); + mir.producer.Producer producer = factory.makeProducer(verbParam); + + producer.produce(out); + + } + else + { + // ML: old producer system: + + String taskParam = req.getParameter("task"); + String forcedParam = req.getParameter("forced"); + String syncParam = req.getParameter("sync"); + theLog.printInfo("Starting Task: " + taskParam); + if (taskParam == null) { + throw new ServletModuleException("Kein Task angegeben!"); + } else { + Class producerModule = Class.forName("mircoders.producer.Producer" + taskParam); + mircoders.producer.Producer producer = (mircoders.producer.Producer) producerModule.newInstance(); + HttpSession session=req.getSession(false); + EntityUsers user = (EntityUsers)session.getAttribute("login.uid"); + + if (forcedParam!=null && !forcedParam.equals("")) { + if (syncParam!=null && !syncParam.equals("")) { + producer.handle(out, user, true, true); + } else { + producer.handle(out, user, true,false); + } + } else { + producer.handle(out, user, false,false); } - } else { - producer.handle(out, user, false,false); - } - } + } + } } catch (Exception e) { throw new ServletModuleException(e.toString());