first cut of merge of STABLE-pre1_0 into HEAD. I won't even guarantee that it
[mir.git] / source / OpenMir.java
1 import java.io.*;
2 import java.util.*;
3 import java.net.*;
4 import java.lang.reflect.*;
5 import javax.servlet.*;
6 import javax.servlet.http.*;
7 import java.sql.*;
8
9 import freemarker.template.*;
10
11 import mir.misc.*;
12 import mir.servlet.*;
13
14 import mircoders.servlet.*;
15 import mircoders.module.*;
16 import mircoders.entity.*;
17 import mircoders.storage.*;
18
19 /**
20  *  OpenMir.java - main servlet for open posting and comment feature to articles
21  *
22  *  @author RK 1999-2001
23  *
24  */
25
26
27 public class OpenMir extends AbstractServlet {
28   
29   //private static boolean                confed=false;
30   private static String lang;
31   public HttpSession session;
32
33   public void doGet(HttpServletRequest req, HttpServletResponse res)
34     throws ServletException, IOException {
35     doPost(req,res);
36   }
37
38   public void doPost(HttpServletRequest req, HttpServletResponse res)
39     throws ServletException, IOException {
40
41     long            startTime = (new java.util.Date()).getTime();
42     long            sessionConnectTime=0;
43
44     
45     
46     // get the configration
47     if(getServletContext().getAttribute("mir.confed") == null) {
48       getConfig(req);
49     }
50     session = req.getSession();
51
52     if(session.getAttribute("Language")==null){
53       setLanguage(session,getAcceptLanguage(req));
54     }
55
56     res.setContentType("text/html");
57     try {
58       ServletModuleDispatch.dispatch(ServletModuleOpenIndy.getInstance(),req,res);
59     }
60     catch (ServletModuleUserException e) {
61       handleUserError(res,res.getWriter(), e.getMsg());  
62     }
63     catch (ServletModuleException e){
64       e.printStackTrace();
65       handleError(res,res.getWriter(), "OpenIndy :: ServletException in Module ServletModule -- " + e.toString());
66     }
67     // timing...
68     sessionConnectTime = new java.util.Date().getTime() - startTime;
69     theLog.printInfo("EXECTIME (ServletModuleOpenIndy): " + sessionConnectTime + " ms");
70   }
71
72   private void handleUserError(HttpServletResponse res,PrintWriter out, String errorString) {
73
74     try {
75       theLog.printError(errorString);
76       SimpleHash modelRoot = new SimpleHash();
77       modelRoot.put("errorstring", new SimpleScalar(errorString));
78       modelRoot.put("date", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
79       HTMLTemplateProcessor.process(res,MirConfig.getProp("Mir.UserErrorTemplate"),modelRoot,out);
80       out.close();
81     }
82     catch (Exception e) {
83       System.err.println("Fehler in UserErrorTemplate");
84     }
85
86   }
87
88   private void handleError(HttpServletResponse res,PrintWriter out, String errorString) {
89
90     try {
91       theLog.printError(errorString);
92       SimpleHash modelRoot = new SimpleHash();
93       modelRoot.put("errorstring", new SimpleScalar(errorString));
94       modelRoot.put("date", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
95       HTMLTemplateProcessor.process(res,MirConfig.getProp("Mir.ErrorTemplate"),modelRoot,out);
96       out.close();
97     }
98     catch (Exception e) {
99       System.err.println("Fehler in ErrorTemplate");
100     }
101
102   }
103
104   public String getServletInfo(){ return "OpenIndy 1.0 rev01"; }
105
106 }
107