package com.nvarghese.beowulf.smf;
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 SmfSettings {
private PropertiesConfiguration propertiesConfiguration;
private String bwSmfRootPath;
private String defaultConfDir;
/* jetty settings */
private String jettyResourceFileName;
private String jettyContextDescriptor;
private String jettyContextResourceBase;
private String jettyContextRootPath;
/* reasons file names */
private String abortReasonsFileName;
private String reportGenReasonsFileName;
private static final String BWSMF__DEFAULT_CONF_DIR = "bw-smf.conf.dir";
private static final String BWSMF__JETTY__RESOURCE_FILE_NAME = "bw-smf.jetty.resource_file_name";
private static final String BWSMF__JETTY__CONTEXT__DESCRIPTOR = "bw-smf.jetty.context.descriptor";
private static final String BWSMF__JETTY__CONTEXT__RESOURCE_BASE = "bw-smf.jetty.context.resourcebase";
private static final String BWSMF__JETTY__CONTEXT__ROOT_PATH = "bw-smf.jetty.context.rootpath";
private static final String BWSMF__ABORT_REASONS_FILE_NAME = "bw-smf.abort_reasons_file";
private static final String BWSMF__REPORTGEN_REASONS_FILE_NAME = "bw-smf.report_gen_reasons_file";
static Logger logger = LoggerFactory.getLogger(SmfSettings.class);
public SmfSettings() throws ConfigurationException, URISyntaxException {
URL u = SmfSettings.class.getClassLoader().getResource("bw-smf.conf");
propertiesConfiguration = new PropertiesConfiguration(u);
initialize();
}
public SmfSettings(String smfConfigFileName) throws ConfigurationException, URISyntaxException {
propertiesConfiguration = new PropertiesConfiguration(SmfSettings.class.getClassLoader().getResource(smfConfigFileName));
initialize();
}
public SmfSettings(File smfServerConfigFilePath) throws ConfigurationException, URISyntaxException {
propertiesConfiguration = new PropertiesConfiguration(smfServerConfigFilePath);
initialize();
}
private void initialize() throws URISyntaxException {
{
String bwSfeHome = System.getenv("BWSMF_HOME");
if (bwSfeHome != null) {
PropertyConfigurator.configure(bwSfeHome + File.separator + "log4j.properties");
bwSmfRootPath = bwSfeHome;
} else {
PropertyConfigurator.configure("log4j.properties");
bwSmfRootPath = "";
logger.warn("Environment variable 'BWSMF_HOME' is not set");
}
}
{
defaultConfDir = propertiesConfiguration.getString(BWSMF__DEFAULT_CONF_DIR, "conf");
}
{
jettyResourceFileName = propertiesConfiguration.getString(BWSMF__JETTY__RESOURCE_FILE_NAME, "jetty-web.xml");
jettyContextDescriptor = propertiesConfiguration.getString(BWSMF__JETTY__CONTEXT__DESCRIPTOR);
jettyContextResourceBase = propertiesConfiguration.getString(BWSMF__JETTY__CONTEXT__RESOURCE_BASE);
jettyContextRootPath = propertiesConfiguration.getString(BWSMF__JETTY__CONTEXT__ROOT_PATH);
}
{
abortReasonsFileName = propertiesConfiguration.getString(BWSMF__ABORT_REASONS_FILE_NAME);
reportGenReasonsFileName = propertiesConfiguration.getString(BWSMF__REPORTGEN_REASONS_FILE_NAME);
}
}
public String getBwSmfRootPath() {
return bwSmfRootPath;
}
public void setBwSmfRootPath(String bwSmfRootPath) {
this.bwSmfRootPath = bwSmfRootPath;
}
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 getAbortReasonsFileName() {
return abortReasonsFileName;
}
public String getReportGenReasonsFileName() {
return reportGenReasonsFileName;
}
}