Mir goes GPL
[mir.git] / source / mircoders / servlet / ServletModuleProducer.java
1 /*
2  * Copyright (C) 2001, 2002  The Mir-coders group
3  *
4  * This file is part of Mir.
5  *
6  * Mir is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * Mir is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Mir; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  * In addition, as a special exception, The Mir-coders gives permission to link
21  * the code of this program with the com.oreilly.servlet library, any library
22  * licensed under the Apache Software License, The Sun (tm) Java Advanced
23  * Imaging library (JAI), The Sun JIMI library (or with modified versions of
24  * the above that use the same license as the above), and distribute linked
25  * combinations including the two.  You must obey the GNU General Public
26  * License in all respects for all of the code used other than the above
27  * mentioned libraries.  If you modify this file, you may extend this exception
28  * to your version of the file, but you are not obligated to do so.  If you do
29  * not wish to do so, delete this exception statement from your version.
30  */
31
32 package mircoders.servlet;
33
34 import java.io.*;
35 import java.sql.*;
36 import java.util.*;
37 import javax.servlet.*;
38 import javax.servlet.http.*;
39
40 import freemarker.template.*;
41
42 import mir.servlet.*;
43 import mir.misc.*;
44 import mir.producer.*;
45
46 import mircoders.producer.*;
47 import mircoders.entity.*;
48 import mircoders.global.*;
49
50 /* Verteilerservlet, dass je nach Parameter task die Klasse Producer"TASK"
51  * ueber die Methode handle(); aufruft
52  *
53  * @author RK
54  */
55
56 public class ServletModuleProducer extends ServletModule
57 {
58
59         private static ServletModuleProducer instance = new ServletModuleProducer();
60         public static ServletModule getInstance() { return instance; }
61
62         private ServletModuleProducer() {
63                 theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.Producer.Logfile"));
64                 defaultAction="produce";
65         }
66
67
68         public void produce(HttpServletRequest req, HttpServletResponse res)
69                 throws ServletModuleException
70         {
71                 try {
72                         PrintWriter out = res.getWriter();
73
74
75                         if (req.getParameter("producer")!=null) {
76       // ML: new producer system:
77
78                         String producerParam = req.getParameter("producer");
79                         String verbParam = req.getParameter("verb");
80
81                         MirGlobal.producerEngine().addJob(producerParam, verbParam);
82                         MirGlobal.producerEngine().printQueueStatus(out);
83
84 //        ProducerFactory factory = (ProducerFactory) MirGlobal.localizer().producers().factories().get(producerParam);
85 //        mir.producer.Producer producer = factory.makeProducer(verbParam);
86
87 //        producer.produce(out);
88
89       }
90       else
91       {
92       // ML: old producer system:
93
94                         String taskParam = req.getParameter("task");
95                         String forcedParam = req.getParameter("forced");
96         String syncParam = req.getParameter("sync");
97                         theLog.printInfo("Starting Task: " + taskParam);
98                         if (taskParam == null) {
99                                 throw new ServletModuleException("Kein Task angegeben!");
100                         } else {
101           Class producerModule = Class.forName("mircoders.producer.Producer" + taskParam);
102           mircoders.producer.Producer producer = (mircoders.producer.Producer) producerModule.newInstance();
103           HttpSession session=req.getSession(false);
104                                 EntityUsers user = (EntityUsers)session.getAttribute("login.uid");
105
106           if (forcedParam!=null && !forcedParam.equals("")) {
107             if (syncParam!=null && !syncParam.equals("")) {
108               producer.handle(out, user, true, true);
109             } else {
110               producer.handle(out, user, true,false);
111             }
112                                 } else {
113                                         producer.handle(out, user, false,false);
114           }
115
116                         }
117                 }
118                 }
119                 catch (Exception e) {
120       throw new ServletModuleException(e.toString());
121     }
122         }
123
124
125 }