package com.nvarghese.beowulf.scs;
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 ScsServerSettings {
private PropertiesConfiguration propertiesConfiguration;
private String bwCategRootPath;
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 static final String BWSCS__IP_ADDR = "bw-scs.ip_address";
private static final String BWSCS__DEFAULT_CONF_DIR = "bw-scs.conf.dir";
private static final String BWSCS__JETTY__RESOURCE_FILE_NAME = "bw-scs.jetty.resource_file_name";
private static final String BWSCS__JETTY__CONTEXT__DESCRIPTOR = "bw-scs.jetty.context.descriptor";
private static final String BWSCS__JETTY__CONTEXT__RESOURCE_BASE = "bw-scs.jetty.context.resourcebase";
private static final String BWSCS__JETTY__CONTEXT__ROOT_PATH = "bw-scs.jetty.context.rootpath";
private static final String BWSCS__ZK__GROUP_NODE = "bw-scs.zookeeper.group_node_name";
private static final String BWSCS__ZK__SERVER_LIST = "bw-scs.zookeeper.servers";
static Logger logger = LoggerFactory.getLogger(ScsServerSettings.class);
public ScsServerSettings() throws ConfigurationException, URISyntaxException {
URL u = ScsServerSettings.class.getClassLoader().getResource("bw-scs.conf");
propertiesConfiguration = new PropertiesConfiguration(u);
initialize();
}
public ScsServerSettings(String categServerConfigFileName) throws ConfigurationException, URISyntaxException {
propertiesConfiguration = new PropertiesConfiguration(ScsServerSettings.class.getClassLoader().getResource(
categServerConfigFileName));
initialize();
}
public ScsServerSettings(File categServerConfigFilePath) throws ConfigurationException, URISyntaxException {
propertiesConfiguration = new PropertiesConfiguration(categServerConfigFilePath);
initialize();
}
private void initialize() throws URISyntaxException {
{
String bwCategHome = System.getenv("BWSCS_HOME");
if (bwCategHome != null) {
PropertyConfigurator.configure(bwCategHome + File.separator + "log4j.properties");
bwCategRootPath = bwCategHome;
} else {
PropertyConfigurator.configure("log4j.properties");
bwCategRootPath = "";
logger.warn("Environment variable 'BWCATEG_HOME' is not set");
}
}
{
defaultConfDir = propertiesConfiguration.getString(BWSCS__DEFAULT_CONF_DIR, "conf");
ipAddress = propertiesConfiguration.getString(BWSCS__IP_ADDR);
}
{
jettyResourceFileName = propertiesConfiguration.getString(BWSCS__JETTY__RESOURCE_FILE_NAME,
"jetty-web.xml");
jettyContextDescriptor = propertiesConfiguration.getString(BWSCS__JETTY__CONTEXT__DESCRIPTOR);
jettyContextResourceBase = propertiesConfiguration.getString(BWSCS__JETTY__CONTEXT__RESOURCE_BASE);
jettyContextRootPath = propertiesConfiguration.getString(BWSCS__JETTY__CONTEXT__ROOT_PATH);
}
{
zkGroupNode = propertiesConfiguration.getString(BWSCS__ZK__GROUP_NODE, "categ");
zkServers = propertiesConfiguration.getString(BWSCS__ZK__SERVER_LIST);
}
}
public String getIpAddress() {
return ipAddress;
}
public String getBwCategRootPath() {
return bwCategRootPath;
}
public void setBwCategRootPath(String bwCategRootPath) {
this.bwCategRootPath = bwCategRootPath;
}
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;
}
}