package org.srdbs.core;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
/**
* Secure and Redundant Data Backup System.
* User: Thilina Piyasundara
* Date: 4/9/12
* Time: 12:03 PM
* For more details visit : http://www.thilina.org
*/
public class Configs {
public static Logger logger = Logger.getLogger("systemsLog");
public static Logger backplogger = Logger.getLogger("backupLog");
public static Logger restoreLog = Logger.getLogger("restoreLog");
public static Properties binProp = new Properties();
public void initConfigs() {
try {
PropertyConfigurator.configure(Global.sysConfigPath);
logger.info("Logs initialization done by using system configuration file.");
backplogger.info("Logs initialization done by using system configuration file.");
restoreLog.info("Logs initialization done by using system configuration file.");
} catch (Exception e) {
System.out.println("Cannot read the sysconfig.conf file. \n" + e);
System.exit(-1);
}
// Read the binary configurations file.
try {
binProp.load(new FileInputStream(Global.binConfigPath));
if (binProp.getProperty("binary.system.config").equalsIgnoreCase("TRUE")) {
System.out.println("Reading the binary config file (sysconfig.bin).");
Global.binaryConfigState = binProp.getProperty("binary.system.config");
initUsingBin(binProp);
} else {
System.out.println("Reading the system configuration file (sysconfig.conf).");
Global.binaryConfigState = "false";
Global.webPort = 8080;
}
} catch (Exception e) {
System.out.println("Error reading binary config file : " + Global.binConfigPath + "\n" + e);
System.exit(-1);
}
}
public void initUsingBin(Properties binProp) {
Global.dbDriver = "com.mysql.jdbc.Driver";
Global.dbIPAddress = binProp.getProperty("mysql.dbIPAddress");
Global.dbPort = Integer.valueOf(binProp.getProperty("mysql.dbPort"));
Global.dbName = binProp.getProperty("mysql.dbName");
Global.dbURL = "jdbc:mysql://" + Global.dbIPAddress + ":" + Global.dbPort + "/";
Global.dbUserName = binProp.getProperty("mysql.dbUserName");
Global.dbPassword = binProp.getProperty("mysql.dbPassword");
new DbConnect().getSystemConfig();
}
public void finalizeConfig() {
try {
binProp.setProperty("binary.system.config", Global.binaryConfigState);
binProp.setProperty("mysql.dbIPAddress", Global.dbIPAddress);
binProp.setProperty("mysql.dbPort", String.valueOf(Global.dbPort));
binProp.setProperty("mysql.dbName", Global.dbName);
binProp.setProperty("mysql.dbUserName", Global.dbUserName);
binProp.setProperty("mysql.dbPassword", Global.dbPassword);
binProp.store(new FileOutputStream(Global.binConfigPath), null);
new DbConnect().finaliseSystemConfig();
logger.info("Write configurations to the binary file.");
} catch (Exception e) {
logger.error("Error on writing configurations to binary file : " + e);
}
}
}