X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmir%2Fmisc%2FMirConfig.java;h=5113ebd3c0a22dd217be68f2ae8a7c1edf14e8d9;hb=e368bbb50c99177c97d0f3c7de877accc014a4b3;hp=a64f4cfb4bf14e476b2f46281e50c1f812b22d0e;hpb=8d988270f53e4ee694c0e8bdc31dbd7cb69cd091;p=mir.git diff --git a/source/mir/misc/MirConfig.java b/source/mir/misc/MirConfig.java index a64f4cfb..5113ebd3 100755 --- a/source/mir/misc/MirConfig.java +++ b/source/mir/misc/MirConfig.java @@ -1,16 +1,50 @@ +/* + * Copyright (C) 2001, 2002 The Mir-coders group + * + * This file is part of Mir. + * + * Mir is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Mir is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Mir; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * In addition, as a special exception, The Mir-coders gives permission to link + * the code of this program with the com.oreilly.servlet library, any library + * licensed under the Apache Software License, The Sun (tm) Java Advanced + * Imaging library (JAI), The Sun JIMI library (or with modified versions of + * the above that use the same license as the above), and distribute linked + * combinations including the two. You must obey the GNU General Public + * License in all respects for all of the code used other than the above + * mentioned libraries. If you modify this file, you may extend this exception + * to your version of the file, but you are not obligated to do so. If you do + * not wish to do so, delete this exception statement from your version. + */ + package mir.misc; -import java.net.*; -import java.io.*; -import java.util.*; -import java.lang.*; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; -import javax.servlet.ServletContext; -import javax.servlet.http.*; +import javax.servlet.ServletContext; -import mir.storage.StorageObjectException; -import mir.storage.DatabaseAdaptor; -import com.codestudio.util.*; +import mir.config.MirPropertiesConfiguration.PropertiesConfigExc; +import mir.storage.DatabaseAdaptor; +import mir.storage.StorageObjectExc; +import mir.storage.StorageObjectFailure; + +import com.codestudio.util.JDBCPool; +import com.codestudio.util.JDBCPoolMetaData; +import com.codestudio.util.SQLManager; /** * Title: Mir @@ -43,14 +77,16 @@ 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(ServletContext ctx, String uri, + public static synchronized void initConfig(ServletContext ctx, String ctxPath, String name, String confName) { - initConfResource(confName); + + initConfResource(ctx.getRealPath("/WEB-INF/")+"/"+confName); + configHash = new HashMap(); - configHash.put("Home", ctx.getRealPath("/")); + configHash.put("Home", ctx.getRealPath("/WEB-INF/")+"/"); configHash.put("ServletContext", ctx); - configHash.put("RootUri", uri); + configHash.put("RootUri", ctxPath); Enumeration resKeys = getResourceKeys(); while(resKeys.hasMoreElements()) { @@ -73,7 +109,12 @@ public class MirConfig extends Configuration { * @return a String containing the prop. value */ public static String getProp(String propName) { - return (String)configHash.get(propName); + String result = (String)configHash.get(propName); + + if (result==null) + throw new ConfigException("config property '"+propName+"' not available!"); + + return result; } /** @@ -83,12 +124,11 @@ public class MirConfig extends Configuration { * @return a String containing the prop.value */ public static String getPropWithHome(String propName) { - return (String)configHash.get("Home") + - (String)configHash.get(propName); + return getProp("Home") + getProp(propName); } /** - * Returns the property asked for iin raw Object form by + * 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 @@ -97,9 +137,9 @@ public class MirConfig extends Configuration { return configHash.get(propName); } - public static void initDbPool () throws StorageObjectException { + public static void initDbPool () throws StorageObjectExc, StorageObjectFailure { if (configHash == null) { - throw new StorageObjectException("MirConfig -- Trying initialize "+ + throw new StorageObjectExc("MirConfig -- Trying initialize "+ "DB pool when system not yet "+ "configured"); } @@ -111,22 +151,28 @@ public class MirConfig extends Configuration { try { adaptor = (DatabaseAdaptor)Class.forName(dbAdapName).newInstance(); } catch (Exception e) { - throw new StorageObjectException("Could not load DB adapator: "+ - e.toString()); + throw new StorageObjectFailure("Could not load DB adapator.",e); } - String dbDriver=adaptor.getDriver(); - String dbUrl=adaptor.getURL(dbUser,dbPassword, dbHost); + String dbDriver; + String dbUrl; + try { + dbDriver = adaptor.getDriver(); + dbUrl =adaptor.getURL(dbUser,dbPassword, dbHost); + } catch (PropertiesConfigExc e) { + throw new StorageObjectFailure(e); + } + System.out.println("adding Broker with: " +dbDriver+":"+dbUrl ); addBroker( dbDriver, dbUrl); } public static void addBroker(String driver, String URL) - throws StorageObjectException { + throws StorageObjectFailure, StorageObjectExc { if (configHash == null) { - throw new StorageObjectException("MirConfig -- Trying initialize "+ - "DB pool when system not yet "+ - "configured"); + throw new StorageObjectExc("MirConfig -- Trying initialize "+ + "DB pool when system not yet "+ + "configured"); } String username,passwd,min,max,log,reset,dbname,dblogfile; @@ -180,4 +226,8 @@ public class MirConfig extends Configuration { } catch (Throwable t) {} } + public static Map allSettings() { + return configHash; + } + }