4 import java.lang.reflect.*;
5 import javax.servlet.*;
6 import javax.servlet.http.*;
9 import freemarker.template.*;
12 import mir.xml.XmlConfigurator;
15 import mircoders.servlet.*;
16 import mircoders.module.*;
17 import mircoders.entity.*;
18 import mircoders.storage.*;
21 * OpenMir.java - main servlet for open posting and comment feature to articles
23 * @author RK 1999-2001
28 public class OpenMir extends AbstractServlet {
30 private static boolean confed=false;
31 private static String lang;
32 public HttpSession session;
34 public void doGet(HttpServletRequest req, HttpServletResponse res)
35 throws ServletException, IOException {
39 public void init() throws ServletException {
41 XmlConfigurator xmlXonfigurator = XmlConfigurator.getInstance();
42 xmlXonfigurator.addRequiredTag("/mir/class:mir.storage.DatabaseConfig/property:username");
43 xmlXonfigurator.addRequiredTag("/mir/class:mir.storage.DatabaseConfig/property:password");
44 xmlXonfigurator.addComesFirstTag("/mir/class:mir.storage.DatabaseConfig/property:password");
45 xmlXonfigurator.addComesFirstTag("/mir/class:mir.storage.DatabaseConfig/property:username");
46 xmlXonfigurator.addComesFirstTag("/mir/class:mir.storage.DatabaseConfig/property:host");
47 xmlXonfigurator.addComesFirstTag("/mir/class:mir.storage.DatabaseConfig/property:adaptor");
48 xmlXonfigurator.addComesFirstTag("/mir/class:mir.storage.DatabaseConfig/property:limit");
49 xmlXonfigurator.addComesFirstTag("/mir/class:mir.storage.DatabaseConfig/property:poolMax");
50 xmlXonfigurator.addComesFirstTag("/mir/class:mir.storage.DatabaseConfig/property:poolMin");
51 xmlXonfigurator.addComesFirstTag("/mir/class:mir.storage.DatabaseConfig/property:poolResetTime");
52 xmlXonfigurator.addComesFirstTag("/mir/class:mir.storage.DatabaseConfig/property:poolLog");
53 xmlXonfigurator.configure(new File(getInitParameter("xml-config")));
54 System.err.println("INIT");
56 MirXmlParser xmlParser = new MirXmlParser();
57 xmlParser.parse("/home/heckmann/server.xml");*/
58 } catch (Exception e) {
60 throw new UnavailableException ("Error loading Config file: "+e.toString(), 0);
62 System.err.println("DONE INIT");
65 public void doPost(HttpServletRequest req, HttpServletResponse res)
66 throws ServletException, IOException {
68 long startTime = (new java.util.Date()).getTime();
69 long sessionConnectTime=0;
73 confed = getConfig(req);
76 session = req.getSession();
78 if(session.getAttribute("Language")==null){
79 setLanguage(session,getAcceptLanguage(req));
82 res.setContentType("text/html");
84 ServletModuleDispatch.dispatch(ServletModuleOpenIndy.getInstance(),req,res);
86 catch (ServletModuleException e){
88 handleError(res,res.getWriter(), "OpenIndy :: ServletException in Module ServletModule -- " + e.toString());
91 sessionConnectTime = new java.util.Date().getTime() - startTime;
92 theLog.printInfo("EXECTIME (ServletModuleOpenIndy): " + sessionConnectTime + " ms");
95 private void handleError(HttpServletResponse res,PrintWriter out, String errorString) {
98 theLog.printError(errorString);
99 SimpleHash modelRoot = new SimpleHash();
100 modelRoot.put("errorstring", new SimpleScalar(errorString));
101 modelRoot.put("date", new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));
102 HTMLTemplateProcessor.process(res,MirConfig.getProp("Mir.ErrorTemplate"),modelRoot,out);
105 catch (Exception e) {
106 System.err.println("Fehler in ErrorTemplate");
111 public String getServletInfo(){ return "OpenIndy 1.0 rev01"; }