package org.ovirt.engine.core.common.utils; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import org.ovirt.engine.core.compat.LogCompat; import org.ovirt.engine.core.compat.LogFactoryCompat; /** * Provides utilities for handling resource files. */ public class ResourceUtils { private static LogCompat log = LogFactoryCompat.getLog(ResourceUtils.class); /** * Loads a collection of {@link Properties} from a resource file. * * @param cls * The class (used by the ClassLoader) * @param name * The resource file name * @return The Properties class * @throws IOException */ public static Properties loadProperties(Class<?> cls, String name) throws IOException { final String ERR_MSG = "Failed to locate resource file: " + name; InputStream is = cls.getClassLoader().getResourceAsStream(name); if (is == null) { log.error(ERR_MSG); throw new FileNotFoundException(ERR_MSG); } try { Properties props = new Properties(); props.load(is); return props; } finally { try { is.close(); } catch (Exception e) { String msg = (e.getMessage() != null) ? e.getMessage() : ""; log.error("Failed to close input stream: " + msg); } } } }