Author: bdonlan
Date: 2005-05-29 21:29:25 -0400 (Sun, 29 May 2005)
New Revision: 740

Modified:
   trunk/clients/Javer2/src/org/haverdev/haver/server/Main.java
Log:
Changes to bootstrap stuff

Modified: trunk/clients/Javer2/src/org/haverdev/haver/server/Main.java
===================================================================
--- trunk/clients/Javer2/src/org/haverdev/haver/server/Main.java        
2005-05-27 19:22:09 UTC (rev 739)
+++ trunk/clients/Javer2/src/org/haverdev/haver/server/Main.java        
2005-05-30 01:29:25 UTC (rev 740)
@@ -22,22 +22,6 @@
     private Main() {
     }
     
-    static final Properties buildDefaults() {
-        Properties defaults = new Properties(System.getProperties());
-        defaults.setProperty("haver.ListenPort", "7070");
-        defaults.setProperty("haver.PingTimeout", "30");
-        defaults.setProperty("haver.PingInterval", "60");
-        defaults.setProperty("haver.HandshakeTimeout", "120");
-        defaults.setProperty("haver.Lobby", 
"org.haverdev.haver.server.DefaultLobby");
-        defaults.setProperty("log4j.rootLogger", "DEBUG, __A1");
-        defaults.setProperty("log4j.appender.__A1", 
"org.apache.log4j.ConsoleAppender");
-        defaults.setProperty("log4j.appender.__A1.layout", 
"org.apache.log4j.PatternLayout");
-        defaults.setProperty(
-                "log4j.appender.__A1.layout.ConversionPattern",
-                "%d [%t] %-5p %c - %m%n");
-        return defaults;
-    }
-    
     static final void initStore(String impl) throws Throwable {
         ClassLoader loader = ClassLoader.getSystemClassLoader();
         Class theClass = loader.loadClass(impl);
@@ -66,40 +50,37 @@
     }
     
     public static final void main(String[] args) {
+        if (args.length == 0){
+            System.err.println("Pass one or more configuration files as 
arguments");
+            System.exit(1);
+        }
         try {
-            _main(args);
+            for (int i = 0; i < args.length; i++)
+                loadConfig(args[i]);
+            bootstrap();
         } catch (Throwable t) {
             t.printStackTrace();
             System.exit(1);
         }
     }
     
-    static final void _main(String[] args) throws Throwable {
-        Properties defaults = buildDefaults();
-        Properties props = new Properties(defaults);
-        if (args.length != 0) {
-            String file = args[0];
-            try {
-                InputStream configfile = new FileInputStream(file);
-                BufferedInputStream buf = new BufferedInputStream(configfile);
-                props.load(buf);
-            } catch (java.io.FileNotFoundException e) {
-                OutputStream configfile = new FileOutputStream(file);
-                defaults.store(configfile, null);
-                return;
-            }
-        }
+    static final void loadConfig(String file) throws Throwable {
+        InputStream config = new BufferedInputStream(new 
FileInputStream(file));
+        System.getProperties().load(config);
+    }
+    
+    static final void bootstrap() throws Throwable {
         
-        System.setProperties(props);
-        PropertyConfigurator.configure(props);
+        // Configure the logger
+        PropertyConfigurator.configure(System.getProperties());
         
-        Lobby.initLobby(props.getProperty("haver.Lobby"));
-        initStore(props.getProperty("haver.UserStore", 
"org.haverdev.haver.server.DefaultUserStore"));
+        Lobby.initLobby(System.getProperty("haver.Lobby"));
+        initStore(System.getProperty("haver.UserStore", 
"org.haverdev.haver.server.DefaultUserStore"));
         
         //String portStr = props.getProperty("haver.ListenPort", "7070");
         //int port = Integer.decode(portStr).intValue();
         
-        String channelstr = props.getProperty("haver.ChatChannels", "");
+        String channelstr = System.getProperty("haver.ChatChannels", "");
         String[] channels = channelstr.split("[, ]+");
         
         for (int i = 0; i < channels.length; i++)
@@ -107,7 +88,7 @@
         if (channels.length == 0)
             Logger.getRootLogger().warn("No chat channels configured");
         
-        String[] plugins = props.getProperty("haver.Plugins").split("[, ]+");
+        String[] plugins = System.getProperty("haver.Plugins").split("[, ]+");
         for (int i = 0; i < plugins.length; i++) {
             try {
                 Logger.getRootLogger().info("Initializing plugin " + 
plugins[i]);


Reply via email to