public static void populateConfiguration () throws IOException, ConfigurationException{
Logger.info("Load initial configuration...");
InputStream is;
if (Play.application().isProd()) is =Play.application().resourceAsStream(CONFIGURATION_FILE_NAME);
else is = new FileInputStream(Play.application().getFile("conf/"+CONFIGURATION_FILE_NAME));
HierarchicalINIConfiguration c = new HierarchicalINIConfiguration();
c.setEncoding("UTF-8");
c.load(is);
CharSequence doubleDot = "..";
CharSequence dot = ".";
Set<String> sections= c.getSections();
for (String section: sections){
Class en = PropertiesConfigurationHelper.CONFIGURATION_SECTIONS.get(section);
if (en==null){
Logger.warn(section + " is not a valid configuration section, it will be skipped!");
continue;
}
SubnodeConfiguration subConf=c.getSection(section);
Iterator<String> it = subConf.getKeys();
while (it.hasNext()){
String key = (it.next());
Object value =subConf.getString(key);
key=key.replace(doubleDot, dot);//bug on the Apache library: if the key contain a dot, it will be doubled!