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]);