package edu.gatech.i3l.fhir.jpa.conf; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URLClassLoader; import java.util.Properties; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; public class PropertiesResolver { private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(PropertiesResolver.class); public static final String PROPERTIES_FILE = "fhir.properties"; private static PropertiesResolver resolver = new PropertiesResolver(); private Properties properties; private PropertiesResolver(){ this.properties = new Properties(); try { URLClassLoader classloader = (URLClassLoader) getClass().getClassLoader(); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(classloader); Resource[] resources = resolver.getResources("classpath*:/*"+PROPERTIES_FILE); //FIXME this search takes a while if(resources.length != 0) properties.load(new FileInputStream(resources[0].getFile())); } catch (FileNotFoundException e) { ourLog.warn(e.getMessage()); } catch (IOException e) { ourLog.warn(e.getMessage()); } } public static PropertiesResolver getInstance(){ return resolver; } public String getPropertyValue(String propertyName){ String propertyValue = null; if(!properties.isEmpty()){ propertyValue = properties.getProperty(propertyName); return propertyValue; } else{ ourLog.error("The file ? was not found in classpath.", PROPERTIES_FILE); } return propertyValue; } }