implemented a simple producer queue
[mir.git] / source / mircoders / servlet / ServletModuleProducer.java
1 package mircoders.servlet;
2
3 import java.io.*;
4 import java.sql.*;
5 import java.util.*;
6 import javax.servlet.*;
7 import javax.servlet.http.*;
8
9 import freemarker.template.*;
10
11 import mir.servlet.*;
12 import mir.misc.*;
13 import mir.producer.*;
14
15 import mircoders.producer.*;
16 import mircoders.entity.*;
17 import mircoders.global.*;
18
19 /* Verteilerservlet, dass je nach Parameter task die Klasse Producer"TASK"
20  * ueber die Methode handle(); aufruft
21  *
22  * @author RK
23  */
24
25 public class ServletModuleProducer extends ServletModule
26 {
27
28         private static ServletModuleProducer instance = new ServletModuleProducer();
29         public static ServletModule getInstance() { return instance; }
30
31         private ServletModuleProducer() {
32                 theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.Producer.Logfile"));
33                 defaultAction="produce";
34         }
35
36
37         public void produce(HttpServletRequest req, HttpServletResponse res)
38                 throws ServletModuleException
39         {
40                 try {
41                         PrintWriter out = res.getWriter();
42
43
44                         if (req.getParameter("producer")!=null) {
45       // ML: new producer system:
46
47                         String producerParam = req.getParameter("producer");
48                         String verbParam = req.getParameter("verb");
49
50                         MirGlobal.producerEngine().addJob(producerParam, verbParam);
51
52 //        ProducerFactory factory = (ProducerFactory) MirGlobal.localizer().producers().factories().get(producerParam);
53 //        mir.producer.Producer producer = factory.makeProducer(verbParam);
54
55 //        producer.produce(out);
56
57       }
58       else
59       {
60       // ML: old producer system:
61
62                         String taskParam = req.getParameter("task");
63                         String forcedParam = req.getParameter("forced");
64         String syncParam = req.getParameter("sync");
65                         theLog.printInfo("Starting Task: " + taskParam);
66                         if (taskParam == null) {
67                                 throw new ServletModuleException("Kein Task angegeben!");
68                         } else {
69           Class producerModule = Class.forName("mircoders.producer.Producer" + taskParam);
70           mircoders.producer.Producer producer = (mircoders.producer.Producer) producerModule.newInstance();
71           HttpSession session=req.getSession(false);
72                                 EntityUsers user = (EntityUsers)session.getAttribute("login.uid");
73
74           if (forcedParam!=null && !forcedParam.equals("")) {
75             if (syncParam!=null && !syncParam.equals("")) {
76               producer.handle(out, user, true, true);
77             } else {
78               producer.handle(out, user, true,false);
79             }
80                                 } else {
81                                         producer.handle(out, user, false,false);
82           }
83
84                         }
85                 }
86                 }
87                 catch (Exception e) {
88       throw new ServletModuleException(e.toString());
89     }
90         }
91
92
93 }