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