package org.teiid.test.util; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import org.junit.Assert; import org.teiid.core.util.PropertiesUtils; import org.teiid.test.framework.ConfigPropertyLoader; import org.teiid.test.framework.exception.TransactionRuntimeException; @SuppressWarnings("nls") public class PropUtils { public static Properties loadProperties(String filename, Properties defaults) { Assert.assertNotNull(filename); InputStream in = null; Properties props = new Properties(); if (defaults != null) { props.putAll(defaults); } try { File f = new File(filename); if (f.exists()) { return PropertiesUtils.load(filename); } in = ConfigPropertyLoader.class.getResourceAsStream("/" + filename); if (in != null) { Properties lprops = new Properties(); lprops.load(in); props.putAll(lprops); } else { throw new TransactionRuntimeException("Failed to load properties from file '"+filename+ "' configuration file"); } } catch (IOException e) { throw new TransactionRuntimeException("Error loading properties from file '"+filename+ "'" + e.getMessage()); } finally { try { in.close(); } catch(Exception e){ } } return props; } }