package com.breakersoft.plow; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @Component public class PlowCfg { private static final Logger logger = LoggerFactory.getLogger(PlowCfg.class); private static final String PROPERTIES_FILE = "plow.properties"; private final Properties props = new Properties(); public PlowCfg() throws IOException { String override = System.getProperty("plow.cfg.path"); if (override != null) { props.load(new FileInputStream(override)); } else { ClassLoader cl = ClassLoader.getSystemClassLoader(); if (cl != null) { URL url = cl.getResource(PROPERTIES_FILE); if (null == url) { url = cl.getResource("/" + PROPERTIES_FILE); } if (null != url) { try { InputStream in = url.openStream(); props.load(in); } catch (IOException e) { e.printStackTrace(); } } } } } public String get(String key) { return props.getProperty(key); } public String get(String key, String defaultValue) { String value = props.getProperty(key); if (value == null) { return defaultValue; } return value; } public double get(String key, double defaultValue) { String value = props.getProperty(key); if (value == null) { return defaultValue; } return Double.parseDouble(value); } public int get(String key, int defaultValue) { String value = props.getProperty(key); if (value == null) { return defaultValue; } return Integer.parseInt(value.trim()); } public boolean get(String key, boolean defaultValue) { String value = props.getProperty(key); if (value == null) { return defaultValue; } return Boolean.parseBoolean(value.trim()); } public long get(String key, long defaultValue) { String value = props.getProperty(key); if (value == null) { return defaultValue; } return Long.parseLong(value.trim()); } }