You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
147 lines
3.4 KiB
147 lines
3.4 KiB
/****************************************************************************** |
|
* |
|
* Copyright: Intellectual Property of Four Elements Capital Pte Ltd, Singapore. |
|
* All rights reserved. |
|
* |
|
******************************************************************************/ |
|
|
|
package com.fourelementscapital.db; |
|
|
|
import java.io.File; |
|
import java.io.FileInputStream; |
|
import java.util.MissingResourceException; |
|
import java.util.Properties; |
|
import java.util.ResourceBundle; |
|
|
|
import org.apache.logging.log4j.Logger; |
|
import org.apache.logging.log4j.LogManager; |
|
|
|
|
|
/** |
|
* This class populates the configuration value from property file |
|
*/ |
|
class Config { |
|
|
|
/** |
|
* Configuration file |
|
*/ |
|
private static final String BUNDLE_NAME = "config_db"; //$NON-NLS-1$ |
|
|
|
/** |
|
* windows peer configuration |
|
*/ |
|
private static final String PROPERTY_FILE_WIN = "peer_db_windows.properties"; //$NON-NLS-1$ |
|
|
|
/** |
|
* unix peer/server configuration file |
|
*/ |
|
private static final String PROPERTY_FILE_UNIX = "peer_db_unix.properties"; //$NON-NLS-1$ |
|
|
|
public static String CONFIG_PROPERTY_LOCATION=null; |
|
|
|
private static Properties confpro=null; |
|
|
|
/** |
|
* Private constructor |
|
*/ |
|
private Config() { |
|
} |
|
|
|
|
|
/** |
|
* Get property value of specified key. Return '!key!' if not found. |
|
* @param key key |
|
* @return property value |
|
*/ |
|
protected static String getString(String key) { |
|
if(CONFIG_PROPERTY_LOCATION==null){ |
|
try { |
|
//return RESOURCE_BUNDLE.getString(key); |
|
return getResourceBuddle().getString(key); |
|
} catch (MissingResourceException e) { |
|
return '!' + key + '!'; |
|
} |
|
}else{ |
|
try { |
|
String ky= getPeerProperty(key); |
|
if(ky==null) throw new Exception(); |
|
else return ky; |
|
} catch (Exception e) { |
|
return '!' + key + '!'; |
|
} |
|
} |
|
} |
|
|
|
|
|
private static ResourceBundle resourceBundle=null; |
|
|
|
|
|
/** |
|
* Get resources bundle |
|
* @return resources bundle |
|
*/ |
|
private synchronized static ResourceBundle getResourceBuddle(){ |
|
|
|
if(resourceBundle==null){ |
|
resourceBundle=ResourceBundle.getBundle(BUNDLE_NAME); |
|
LogManager.getLogger(Config.class.getName()).info("resourceBundle:"+resourceBundle); |
|
} |
|
|
|
return resourceBundle; |
|
} |
|
|
|
|
|
/** |
|
* Get property value of specified key. Return null if not found. |
|
* @param key key |
|
* @return property value |
|
*/ |
|
protected static String getValue(String key) { |
|
if(CONFIG_PROPERTY_LOCATION==null){ |
|
try { |
|
|
|
return getResourceBuddle().getString(key); |
|
} catch (MissingResourceException e) { |
|
return null; |
|
} |
|
}else{ |
|
try { |
|
return getPeerProperty(key); |
|
} catch (Exception e) { |
|
return null; |
|
} |
|
} |
|
} |
|
|
|
|
|
/** |
|
* Get peer property by key |
|
* @param key key |
|
* @return peer property |
|
*/ |
|
private static String getPeerProperty(String key) throws Exception { |
|
try{ |
|
if(confpro==null){ |
|
String propertyfilename=PROPERTY_FILE_WIN; |
|
if(System.getProperty("os.name").toLowerCase().equals("freebsd")) |
|
propertyfilename=PROPERTY_FILE_UNIX; |
|
|
|
if(System.getProperty("os.name").toLowerCase().contains("linux")) |
|
propertyfilename=PROPERTY_FILE_UNIX; |
|
|
|
String folder=CONFIG_PROPERTY_LOCATION; |
|
folder=folder.endsWith(File.separator)?folder:folder+File.separator; |
|
confpro=new Properties(); |
|
String filename=folder+"conf"+File.separator+propertyfilename; |
|
confpro.load(new FileInputStream(filename)); |
|
} |
|
return confpro.getProperty(key); |
|
}catch(Exception e){ |
|
e.printStackTrace(); |
|
throw e; |
|
} |
|
} |
|
|
|
} |
|
|
|
|
|
|