code cleaning, new config
[mir.git] / source / Mir.java
index 1d4eeca..5dcca0e 100755 (executable)
@@ -34,8 +34,11 @@ import java.io.PrintWriter;
 import java.lang.reflect.Method;\r
 import java.util.GregorianCalendar;\r
 import java.util.HashMap;\r
+import java.util.Iterator;\r
+import java.util.List;\r
 import java.util.Locale;\r
-import java.util.*;\r
+import java.util.Map;\r
+import java.util.Vector;\r
 \r
 import javax.servlet.ServletException;\r
 import javax.servlet.UnavailableException;\r
@@ -43,30 +46,36 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;\r
 import javax.servlet.http.HttpSession;\r
 \r
-import freemarker.template.*;\r
-\r
-import org.apache.struts.util.MessageResources;\r
-\r
-import mir.misc.*;\r
-import mir.servlet.*;\r
-import mir.util.*;\r
-import mir.generator.*;\r
-//import mir.log.Log;\r
-\r
-import mircoders.global.*;\r
-import mircoders.localizer.*;\r
+import mir.config.MirPropertiesConfiguration;\r
+import mir.generator.FreemarkerGenerator;\r
+import mir.misc.HTMLTemplateProcessor;\r
+import mir.misc.StringUtil;\r
+import mir.servlet.AbstractServlet;\r
+import mir.servlet.ServletModule;\r
+import mir.servlet.ServletModuleDispatch;\r
+import mir.servlet.ServletModuleException;\r
+import mir.servlet.ServletModuleUserException;\r
+import mir.util.StringRoutines;\r
 import mircoders.entity.EntityUsers;\r
+import mircoders.global.MirGlobal;\r
 import mircoders.module.ModuleMessage;\r
 import mircoders.module.ModuleUsers;\r
 import mircoders.storage.DatabaseArticleType;\r
 import mircoders.storage.DatabaseMessages;\r
 import mircoders.storage.DatabaseUsers;\r
 \r
+import org.apache.struts.util.MessageResources;\r
+\r
+import freemarker.template.SimpleHash;\r
+import freemarker.template.SimpleList;\r
+import freemarker.template.SimpleScalar;\r
+import freemarker.template.TemplateModel;\r
+\r
 /**\r
  * Mir.java - main servlet, that dispatches to servletmodules\r
  *\r
- * @author $Author: mh $\r
- * @version $Id: Mir.java,v 1.26 2003/01/18 08:32:07 mh Exp $\r
+ * @author $Author: idfx $\r
+ * @version $Id: Mir.java,v 1.27 2003/01/25 17:50:34 idfx Exp $\r
  *\r
  */\r
 \r
@@ -81,6 +90,8 @@ public class Mir extends AbstractServlet {
   private static List loginLanguages = null;\r
 \r
   public HttpSession session;\r
+  \r
+  \r
 \r
   public void doGet(HttpServletRequest req, HttpServletResponse res) throws\r
       ServletException, IOException {\r
@@ -146,11 +157,7 @@ public class Mir extends AbstractServlet {
     EntityUsers userEntity;\r
     String http = "";\r
 \r
-    if (getServletContext().getAttribute("mir.confed") == null) {\r
-      getConfig(req);\r
-    }\r
-\r
-    MirConfig.setServletName(getServletName());\r
+    configuration.addProperty("ServletName",getServletName());\r
 \r
     //*** test\r
      // Log.info(this, "blalalala");\r
@@ -189,25 +196,25 @@ public class Mir extends AbstractServlet {
     if ( (moduleName != null && moduleName.equals("login")) || (userEntity == null)) {\r
       String user = req.getParameter("login");\r
       String passwd = req.getParameter("password");\r
-      theLog.printDebugInfo("--login: evaluating for user: " + user);\r
+      logger.debug("--login: evaluating for user: " + user);\r
       userEntity = allowedUser(user, passwd);\r
       if (userEntity == null) {\r
         // login failed: redirecting to login\r
-        theLog.printWarning("--login: failed!");\r
+        logger.warn("--login: failed!");\r
         _sendLoginPage(res, req, res.getWriter());\r
         return;\r
       }\r
       else if (moduleName != null && moduleName.equals("login")) {\r
         // login successful\r
 \r
-        theLog.printInfo("--login: successful! setting uid: " +\r
+        logger.info("--login: successful! setting uid: " +\r
                          userEntity.getId());\r
         session.setAttribute("login.uid", userEntity);\r
-        theLog.printDebugInfo("--login: trying to retrieve login.target");\r
+        logger.debug("--login: trying to retrieve login.target");\r
         String target = (String) session.getAttribute("login.target");\r
 \r
         if (target != null) {\r
-          theLog.printDebugInfo("Redirect: " + target);\r
+          logger.debug("Redirect: " + target);\r
           int serverPort = req.getServerPort();\r
           String redirect = "";\r
           String redirectString = "";\r
@@ -237,7 +244,7 @@ public class Mir extends AbstractServlet {
         }\r
         else {\r
           // redirecting to default target\r
-          theLog.printDebugInfo("--login: no target - redirecting to default");\r
+          logger.debug("--login: no target - redirecting to default");\r
           _sendStartPage(res, req, res.getWriter(), userEntity);\r
         }\r
         return;\r
@@ -245,7 +252,7 @@ public class Mir extends AbstractServlet {
     } // if login\r
 \r
     if (moduleName != null && moduleName.equals("logout")) {\r
-      theLog.printDebugInfo("--logout");\r
+      logger.info("--logout");\r
       session.invalidate();\r
 \r
       //session = req.getSession(true);\r
@@ -261,7 +268,7 @@ public class Mir extends AbstractServlet {
       String queryString = req.getQueryString();\r
       if (queryString != null && !queryString.equals("")) {\r
         redirectString += "?" + req.getQueryString();\r
-        theLog.printDebugInfo("STORING: " + redirectString);\r
+        logger.debug("STORING: " + redirectString);\r
         session.setAttribute("login.target", redirectString);\r
       }\r
       _sendLoginPage(res, req, res.getWriter());\r
@@ -270,7 +277,7 @@ public class Mir extends AbstractServlet {
 \r
     // If no module is specified goto standard startpage\r
     if (moduleName == null || moduleName.equals("")) {\r
-      theLog.printDebugInfo("no module: redirect to standardpage");\r
+      logger.debug("no module: redirect to standardpage");\r
       _sendStartPage(res, req, res.getWriter(), userEntity);\r
       return;\r
     }\r
@@ -293,7 +300,7 @@ public class Mir extends AbstractServlet {
 \r
     // timing...\r
     sessionConnectTime = System.currentTimeMillis() - startTime;\r
-    theLog.printInfo("EXECTIME (" + moduleName + "): " + sessionConnectTime +\r
+    logger.info("EXECTIME (" + moduleName + "): " + sessionConnectTime +\r
                      " ms");\r
   }\r
 \r
@@ -342,12 +349,12 @@ public class Mir extends AbstractServlet {
                            PrintWriter out, String errorString) {\r
 \r
     try {\r
-      theLog.printError(errorString);\r
+      logger.error(errorString);\r
       SimpleHash modelRoot = new SimpleHash();\r
       modelRoot.put("errorstring", new SimpleScalar(errorString));\r
       modelRoot.put("date",\r
                     new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));\r
-      HTMLTemplateProcessor.process(res, MirConfig.getProp("Mir.ErrorTemplate"),\r
+      HTMLTemplateProcessor.process(res, MirPropertiesConfiguration.instance().getString("Mir.ErrorTemplate"),\r
                                     modelRoot, out, getLocale(req));\r
       out.close();\r
     }\r
@@ -360,13 +367,13 @@ public class Mir extends AbstractServlet {
   private void handleUserError(HttpServletRequest req, HttpServletResponse res,\r
                                PrintWriter out, String errorString) {\r
     try {\r
-      theLog.printError(errorString);\r
+      logger.error(errorString);\r
       SimpleHash modelRoot = new SimpleHash();\r
       modelRoot.put("errorstring", new SimpleScalar(errorString));\r
       modelRoot.put("date",\r
                     new SimpleScalar(StringUtil.date2readableDateTime(new GregorianCalendar())));\r
       HTMLTemplateProcessor.process(res,\r
-                                    MirConfig.getProp("Mir.UserErrorTemplate"),\r
+                                    MirPropertiesConfiguration.instance().getString("Mir.UserErrorTemplate"),\r
                                     modelRoot, out, getLocale(req));\r
       out.close();\r
     }\r
@@ -386,7 +393,7 @@ public class Mir extends AbstractServlet {
       return usersModule.getUserForLogin(user, password);\r
     }\r
     catch (Exception e) {\r
-      theLog.printDebugInfo(e.getMessage());\r
+      logger.debug(e.getMessage());\r
       e.printStackTrace();\r
       return null;\r
     }\r
@@ -395,7 +402,8 @@ public class Mir extends AbstractServlet {
   // Redirect-methods\r
   private void _sendLoginPage(HttpServletResponse res, HttpServletRequest req,\r
                               PrintWriter out) {\r
-    String loginTemplate = MirConfig.getProp("Mir.LoginTemplate");\r
+    String loginTemplate = \r
+       configuration.getString("Mir.LoginTemplate");\r
     String sessionUrl = res.encodeURL("");\r
 \r
     try {\r
@@ -443,20 +451,20 @@ public class Mir extends AbstractServlet {
   }\r
 \r
   public String getServletInfo() {\r
-    return "Mir " + MirConfig.getProp("Mir.Version");\r
+    return "Mir " + configuration.getString("Mir.Version");\r
   }\r
 \r
   private void checkLanguage(HttpSession session, HttpServletRequest req) {\r
     // a lang parameter always sets the language\r
     String lang = req.getParameter("language");\r
     if (lang != null) {\r
-      theLog.printInfo("selected language " + lang + " overrides accept-language");\r
+      logger.info("selected language " + lang + " overrides accept-language");\r
       setLanguage(session, lang);\r
       setLocale(session, new Locale(lang, ""));\r
     }\r
     // otherwise store language from accept header in session\r
     else if (session.getAttribute("Language") == null) {\r
-      theLog.printInfo("accept-language is " + req.getLocale().getLanguage());\r
+      logger.info("accept-language is " + req.getLocale().getLanguage());\r
       setLanguage(session, req.getLocale().getLanguage());\r
       setLocale(session, req.getLocale());\r
     }\r