diff --git a/zond/src/main/java/asys/zond/Config.java b/zond/src/main/java/asys/zond/Config.java index ba2ed4b..9fb6036 100644 --- a/zond/src/main/java/asys/zond/Config.java +++ b/zond/src/main/java/asys/zond/Config.java @@ -4,8 +4,7 @@ */ package asys.zond; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.util.Properties; public class Config { @@ -26,6 +25,25 @@ public class Config { } } + void load() throws IOException { + File zondPropertiesFile = new File("zond.properties"); + if (!zondPropertiesFile.exists()) { + InputStream stream = Config.class.getResourceAsStream("/zond.properties"); + FileOutputStream fos = new FileOutputStream(zondPropertiesFile); + byte[] buff = new byte[128]; + int len; + while ((len = stream.read(buff)) > 0) { + fos.write(buff, 0, len); + } + fos.flush(); + fos.close(); + } + + FileInputStream fis = new FileInputStream(zondPropertiesFile); + load(fis); + fis.close(); + } + public String getString(String key) { return properties.getProperty(key); } diff --git a/zond/src/main/java/asys/zond/Main.java b/zond/src/main/java/asys/zond/Main.java index ce9de6b..dcecf7b 100644 --- a/zond/src/main/java/asys/zond/Main.java +++ b/zond/src/main/java/asys/zond/Main.java @@ -25,7 +25,7 @@ public class Main { private void start(String[] args) { try { - loadConfig(); + Config.getInstance().load(); } catch (IOException e) { e.printStackTrace(); System.exit(-2); @@ -54,23 +54,4 @@ public class Main { PumpStreamHandler pumpStreamHandler = new PumpStreamHandler(stdout); executor.setStreamHandler(pumpStreamHandler); } - - private void loadConfig() throws IOException { - File zondPropertiesFile = new File("zond.properties"); - if (!zondPropertiesFile.exists()) { - InputStream stream = Main.class.getResourceAsStream("/zond.properties"); - FileOutputStream fos = new FileOutputStream(zondPropertiesFile); - byte[] buff = new byte[65536]; - int len; - while ((len = stream.read(buff)) > 0) { - fos.write(buff, 0, len); - } - fos.flush(); - fos.close(); - } - - FileInputStream fis = new FileInputStream(zondPropertiesFile); - Config.getInstance().load(fis); - fis.close(); - } } \ No newline at end of file diff --git a/zond/src/main/java/asys/zond/ZondCommandHandler.java b/zond/src/main/java/asys/zond/ZondCommandHandler.java index 68796fc..bc13f4b 100644 --- a/zond/src/main/java/asys/zond/ZondCommandHandler.java +++ b/zond/src/main/java/asys/zond/ZondCommandHandler.java @@ -65,6 +65,13 @@ public class ZondCommandHandler implements CommandHandler { Connector.getInstance().startReconnect(); } else if (line.equalsIgnoreCase("disconnect")) { Connector.getInstance().shutdown(); + } else if (line.equalsIgnoreCase("reload")) { + Shell.getInstance().getOutput().println("Reload config"); + try { + Config.getInstance().load(); + } catch (IOException e) { + e.printStackTrace(); + } } }