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
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";
}
{
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("mir.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());