From 8d988270f53e4ee694c0e8bdc31dbd7cb69cd091 Mon Sep 17 00:00:00 2001 From: mh Date: Tue, 2 Apr 2002 22:56:05 +0000 Subject: [PATCH] support for storing the ServletContext in MirConfig for later use. Have to do this because otherwise we can't access it from the invoked via reflection servlet modules --- source/Mir.java | 3 ++- source/OpenMir.java | 3 ++- source/mir/misc/MirConfig.java | 21 ++++++++++++++++++--- source/mir/servlet/AbstractServlet.java | 6 ++++-- 4 files changed, 26 insertions(+), 7 deletions(-) diff --git a/source/Mir.java b/source/Mir.java index 486e4efd..de346368 100755 --- a/source/Mir.java +++ b/source/Mir.java @@ -52,7 +52,8 @@ public class Mir extends AbstractServlet { long sessionConnectTime = 0; String http = ""; - // get the configration + // get the configration - this could conflict if 2 mirs are in the + // VM maybe? to be checked. -mh if (getServletContext().getAttribute("mir.confed") == null) { getConfig(req); } diff --git a/source/OpenMir.java b/source/OpenMir.java index 1b10a98d..b8550838 100755 --- a/source/OpenMir.java +++ b/source/OpenMir.java @@ -41,7 +41,8 @@ public class OpenMir extends AbstractServlet { long startTime = (new java.util.Date()).getTime(); long sessionConnectTime=0; - // get the configration + // get the configration - this could conflict if 2 mirs are in the + // VM maybe? to be checked. -mh if(getServletContext().getAttribute("mir.confed") == null) { getConfig(req); } diff --git a/source/mir/misc/MirConfig.java b/source/mir/misc/MirConfig.java index c22c2e04..a64f4cfb 100755 --- a/source/mir/misc/MirConfig.java +++ b/source/mir/misc/MirConfig.java @@ -1,10 +1,13 @@ package mir.misc; -import javax.servlet.http.*; import java.net.*; import java.io.*; import java.util.*; import java.lang.*; + +import javax.servlet.ServletContext; +import javax.servlet.http.*; + import mir.storage.StorageObjectException; import mir.storage.DatabaseAdaptor; import com.codestudio.util.*; @@ -40,11 +43,13 @@ public class MirConfig extends Configuration { * @param name, The name of the servlet (usually "Mir") * @param confName, the name of the config file to load. */ - public static synchronized void initConfig(String home, String uri, + public static synchronized void initConfig(ServletContext ctx, String uri, String name, String confName) { initConfResource(confName); configHash = new HashMap(); - configHash.put("Home", home); + + configHash.put("Home", ctx.getRealPath("/")); + configHash.put("ServletContext", ctx); configHash.put("RootUri", uri); Enumeration resKeys = getResourceKeys(); @@ -82,6 +87,16 @@ public class MirConfig extends Configuration { (String)configHash.get(propName); } + /** + * Returns the property asked for iin raw Object form by + * pulling it out a HashMap + * @param a String containing the property name (key) + * @return an Object containing the prop.value + */ + public static Object getPropAsObject(String propName) { + return configHash.get(propName); + } + public static void initDbPool () throws StorageObjectException { if (configHash == null) { throw new StorageObjectException("MirConfig -- Trying initialize "+ diff --git a/source/mir/servlet/AbstractServlet.java b/source/mir/servlet/AbstractServlet.java index 0bbeb454..82b6aa42 100755 --- a/source/mir/servlet/AbstractServlet.java +++ b/source/mir/servlet/AbstractServlet.java @@ -30,13 +30,15 @@ public abstract class AbstractServlet extends HttpServlet { protected boolean getConfig(HttpServletRequest req) throws UnavailableException { - String RealPath = super.getServletContext().getRealPath("/"); + //String RealPath = super.getServletContext().getRealPath("/"); String Uri = req.getRequestURI(); String Name = super.getServletName(); String RootUri = StringUtil.replace(Uri, "/servlet/" + Name, ""); // init config - MirConfig.initConfig(RealPath, RootUri, Name, getInitParameter("Config")); + //MirConfig.initConfig(RealPath, RootUri, Name, getInitParameter("Config")); + MirConfig.initConfig(super.getServletContext(), RootUri, Name, + getInitParameter("Config")); theLog = Logfile.getInstance(MirConfig.getPropWithHome(Name + ".Logfile")); theLog.printInfo(Name + " started."); -- 2.11.0