package com.nvarghese.beowulf.sfe;
import java.io.File;
import java.net.URISyntaxException;
import java.net.URL;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.log4j.PropertyConfigurator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SfeSettings {
private PropertiesConfiguration propertiesConfiguration;
private String bwSfExecutorRootPath;
private String defaultConfDir;
private String ipAddress;
/* jetty settings */
private String jettyResourceFileName;
private String jettyContextDescriptor;
private String jettyContextResourceBase;
private String jettyContextRootPath;
/* zookeeper settings */
private String zkGroupNode;
private String zkServers;
private String scannerConfigDir;
private String scannerConfigMasterFile;
private static final String BWSFE__IP_ADDR = "bw-sfe.ip_address";
private static final String BWSFE__DEFAULT_CONF_DIR = "bw-sfe.conf.dir";
private static final String BWSFE__JETTY__RESOURCE_FILE_NAME = "bw-sfe.jetty.resource_file_name";
private static final String BWSFE__JETTY__CONTEXT__DESCRIPTOR = "bw-sfe.jetty.context.descriptor";
private static final String BWSFE__JETTY__CONTEXT__RESOURCE_BASE = "bw-sfe.jetty.context.resourcebase";
private static final String BWSFE__JETTY__CONTEXT__ROOT_PATH = "bw-sfe.jetty.context.rootpath";
private static final String BWSFE__ZK__GROUP_NODE = "bw-sfe.zookeeper.group_node_name";
private static final String BWSFE__ZK__SERVER_LIST = "bw-sfe.zookeeper.servers";
private static final String BWSFE__SCANNER_CONFIG__DIR = "bw-sfe.scanner_configuration.dir";
private static final String BWSFE__SCANNER_CONFIG__MASTER_FILE = "bw-sfe.scanner_configuration.master_config_file_name";
static Logger logger = LoggerFactory.getLogger(SfeSettings.class);
public SfeSettings() throws ConfigurationException, URISyntaxException {
URL u = SfeSettings.class.getClassLoader().getResource("bw-sfe.conf");
propertiesConfiguration = new PropertiesConfiguration(u);
initialize();
}
public SfeSettings(String execServerConfigFileName) throws ConfigurationException, URISyntaxException {
propertiesConfiguration = new PropertiesConfiguration(SfeSettings.class.getClassLoader().getResource(execServerConfigFileName));
initialize();
}
public SfeSettings(File execServerConfigFilePath) throws ConfigurationException, URISyntaxException {
propertiesConfiguration = new PropertiesConfiguration(execServerConfigFilePath);
initialize();
}
private void initialize() throws URISyntaxException {
{
String bwSfeHome = System.getenv("BWSFE_HOME");
if (bwSfeHome != null) {
PropertyConfigurator.configure(bwSfeHome + File.separator + "log4j.properties");
bwSfExecutorRootPath = bwSfeHome;
} else {
PropertyConfigurator.configure("log4j.properties");
bwSfExecutorRootPath = "";
logger.warn("Environment variable 'BWSFE_HOME' is not set");
}
}
{
defaultConfDir = propertiesConfiguration.getString(BWSFE__DEFAULT_CONF_DIR, "conf");
ipAddress = propertiesConfiguration.getString(BWSFE__IP_ADDR);
}
{
jettyResourceFileName = propertiesConfiguration.getString(BWSFE__JETTY__RESOURCE_FILE_NAME, "jetty-web.xml");
jettyContextDescriptor = propertiesConfiguration.getString(BWSFE__JETTY__CONTEXT__DESCRIPTOR);
jettyContextResourceBase = propertiesConfiguration.getString(BWSFE__JETTY__CONTEXT__RESOURCE_BASE);
jettyContextRootPath = propertiesConfiguration.getString(BWSFE__JETTY__CONTEXT__ROOT_PATH);
}
{
zkGroupNode = propertiesConfiguration.getString(BWSFE__ZK__GROUP_NODE, "executor");
zkServers = propertiesConfiguration.getString(BWSFE__ZK__SERVER_LIST);
}
{
scannerConfigDir = propertiesConfiguration.getString(BWSFE__SCANNER_CONFIG__DIR, "scan-config");
scannerConfigMasterFile = propertiesConfiguration.getString(BWSFE__SCANNER_CONFIG__MASTER_FILE, "config_master.conf");
}
}
public String getBwSfExecutorRootPath() {
return bwSfExecutorRootPath;
}
public void setBwSfExecutorRootPath(String bwSfExecutorRootPath) {
this.bwSfExecutorRootPath = bwSfExecutorRootPath;
}
public String getIpAddress() {
return ipAddress;
}
public String getDefaultConfDir() {
return defaultConfDir;
}
public void setDefaultConfDir(String defaultConfDir) {
this.defaultConfDir = defaultConfDir;
}
public String getJettyResourceFileName() {
return jettyResourceFileName;
}
public void setJettyResourceFileName(String jettyResourceFileName) {
this.jettyResourceFileName = jettyResourceFileName;
}
public String getJettyContextDescriptor() {
return jettyContextDescriptor;
}
public void setJettyContextDescriptor(String jettyContextDescriptor) {
this.jettyContextDescriptor = jettyContextDescriptor;
}
public String getJettyContextResourceBase() {
return jettyContextResourceBase;
}
public void setJettyContextResourceBase(String jettyContextResourceBase) {
this.jettyContextResourceBase = jettyContextResourceBase;
}
public String getJettyContextRootPath() {
return jettyContextRootPath;
}
public void setJettyContextRootPath(String jettyContextRootPath) {
this.jettyContextRootPath = jettyContextRootPath;
}
public String getZkGroupNode() {
return zkGroupNode;
}
public String getZkServers() {
return zkServers;
}
public String getScannerConfigDir() {
return scannerConfigDir;
}
public String getScannerConfigMasterFile() {
return scannerConfigMasterFile;
}
}