merge of localization branch into HEAD. mh and zap
[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                         MirGlobal.producerEngine().printQueueStatus(out);
52
53 //        ProducerFactory factory = (ProducerFactory) MirGlobal.localizer().producers().factories().get(producerParam);
54 //        mir.producer.Producer producer = factory.makeProducer(verbParam);
55
56 //        producer.produce(out);
57
58       }
59       else
60       {
61       // ML: old producer system:
62
63                         String taskParam = req.getParameter("task");
64                         String forcedParam = req.getParameter("forced");
65         String syncParam = req.getParameter("sync");
66                         theLog.printInfo("Starting Task: " + taskParam);
67                         if (taskParam == null) {
68                                 throw new ServletModuleException("Kein Task angegeben!");
69                         } else {
70           Class producerModule = Class.forName("mircoders.producer.Producer" + taskParam);
71           mircoders.producer.Producer producer = (mircoders.producer.Producer) producerModule.newInstance();
72           HttpSession session=req.getSession(false);
73                                 EntityUsers user = (EntityUsers)session.getAttribute("login.uid");
74
75           if (forcedParam!=null && !forcedParam.equals("")) {
76             if (syncParam!=null && !syncParam.equals("")) {
77               producer.handle(out, user, true, true);
78             } else {
79               producer.handle(out, user, true,false);
80             }
81                                 } else {
82                                         producer.handle(out, user, false,false);
83           }
84
85                         }
86                 }
87                 }
88                 catch (Exception e) {
89       throw new ServletModuleException(e.toString());
90     }
91         }
92
93
94 }