001 package org.kuali.incubator; 002 003 import java.io.File; 004 import java.io.IOException; 005 import java.util.List; 006 import java.util.Properties; 007 008 import org.kuali.ole.utility.ConfigUtil; 009 import org.kuali.ole.utility.Constants; 010 import org.kuali.ole.utility.PropertyUtils; 011 import org.kuali.ole.utility.ResourceUtil; 012 013 /** 014 * 015 */ 016 public class PropertyUtil { 017 ResourceUtil resourceUtil = new ResourceUtil(); 018 ConfigUtil configUtil = new ConfigUtil(); 019 private static PropertyUtil propertyUtil = new PropertyUtil(); 020 private static final String DEFAULT_PROPERTIES_FILENAME = "env.properties"; 021 private static final String DEFAULT_PROPERTIES_LOCATION = "classpath:org/kuali/incubator/" + DEFAULT_PROPERTIES_FILENAME; 022 private static final String SYSTEM_PROPERTY = "ole.solrclient.properties"; 023 024 public static PropertyUtil getPropertyUtil() { 025 return propertyUtil; 026 } 027 028 private Properties props; 029 030 private PropertyUtil() { 031 try { 032 String externalConfigFile = getExternalConfigFile(); 033 List<String> locations = PropertyUtils.getLocations(DEFAULT_PROPERTIES_LOCATION, SYSTEM_PROPERTY, externalConfigFile); 034 props = PropertyUtils.getAppEnvironmentProperties(locations); 035 } catch (IOException e) { 036 throw new IllegalStateException("Exception loading properties", e); 037 } 038 } 039 040 public String getProperty(String key) { 041 return props.getProperty(key); 042 } 043 044 public Properties getProperties() { 045 Properties p = new Properties(); 046 p.putAll(props); 047 return p; 048 } 049 050 public String getExternalConfigFile() { 051 StringBuilder sb = new StringBuilder(); 052 sb.append(configUtil.getApplicationHome(Constants.KUALI_GROUP, Constants.OLE_SOLAR_CLIENT)); 053 sb.append(File.separator + "properties" + File.separator); 054 sb.append(DEFAULT_PROPERTIES_FILENAME); 055 return sb.toString(); 056 } 057 }