001 package net.sf.jolene.util; 002 003 import net.sf.jolene.constants.Prefs; 004 import org.apache.log4j.LogManager; 005 import org.apache.log4j.Logger; 006 007 import java.io.IOException; 008 import java.io.InputStream; 009 import java.net.URL; 010 import java.util.Iterator; 011 import java.util.Properties; 012 013 /** 014 * Class to read jolene preferences from the jolene.properties file. 015 * 016 * @author Dan Howard 017 * @since Dec 30, 2005 10:41:11 AM 018 */ 019 public class PrefsReader { 020 021 private static final Logger log = LogManager.getLogger(PrefsReader.class); 022 023 private PrefsReader() { 024 } 025 026 public static void init() { 027 Object o = new Object(); 028 synchronized (o) { 029 Properties properties = new Properties(); 030 InputStream input = null; 031 try { 032 URL resource = PrefsReader.class.getResource("/jolene.properties"); 033 if (resource == null) { 034 log.info("jolene.properties not found. Default prefs will be used"); 035 return; 036 } 037 038 log.info("Reading jolene.properties from " + resource.getFile()); 039 input = PrefsReader.class.getResourceAsStream("/jolene.properties"); 040 properties.load(input); 041 } catch (IOException e) { 042 log.warn(e.getMessage(), e); 043 } 044 045 Iterator it = properties.keySet().iterator(); 046 while (it.hasNext()) { 047 Object key; 048 key = it.next(); 049 050 Prefs pref = Prefs.valueOf(key.toString()); 051 if (pref != null) { 052 log.info("Assigning jolene preference " + key + " to " + properties.get(key)); 053 pref.setValue(properties.get(key)); 054 } else { 055 log.warn("Unknown PrefsReader preference in properties file: " + key); 056 } 057 } 058 059 if (input != null) { 060 try { 061 input.close(); 062 } catch (IOException e) { 063 log.warn(e.getMessage()); 064 } 065 } 066 067 } 068 } 069 }