package com.paypal.utils.cb.kafka;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public class ConfigLoader {
private static Properties configprops=null;
private static Properties kafkaconfigprops=null;
private static Map<String,String> msgConverterMap=null;
private static void init(){
try {
configprops=new Properties();
kafkaconfigprops=new Properties();
File jarPath=new File(ConfigLoader.class.getProtectionDomain().getCodeSource().getLocation().getPath());
String propertiesPath=jarPath.getParentFile().getAbsolutePath();
configprops.load(new FileInputStream(new File(propertiesPath+"/"+Constants.RESOURCEFILE)));
kafkaconfigprops.load(new FileInputStream(new File(propertiesPath+"/"+Constants.RESOURCEFILE_KAFKA)));
if(Boolean.parseBoolean(ConfigLoader.getProp(Constants.ENABLETRANSFORMATION))){
msgConverterMap=new HashMap<String,String>();
String converterAndKeys=configprops.getProperty(Constants.CBMESSAGECONVERTER);
if(converterAndKeys!=null){
String[] keys=converterAndKeys.split(",");
for(String key:keys){
String[] msgkeys=key.split(":");
msgConverterMap.put(msgkeys[0], msgkeys[1]);
}
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String getProp(String key){
if(configprops==null) init();
return configprops.getProperty(key);
}
public static String getProp(String key,String defaultVal){
if(configprops==null) init();
String propertyVal= getProp( key);
if(propertyVal==null) {
propertyVal= defaultVal;
}
return propertyVal;
}
public static Properties getConfigProps(){
if(configprops==null) init();
return configprops;
}
public static Properties getKafkaConfigProps(){
if(kafkaconfigprops==null) init();
return kafkaconfigprops;
}
public static Map<String, String> getMsgConverterMap() {
return msgConverterMap;
}
}