Package com.isomorphic.base
Class Config
java.lang.Object
org.apache.commons.collections4.map.AbstractIterableMap<K,V>
com.isomorphic.collections.DataTypeMap
com.isomorphic.base.Config
- All Implemented Interfaces:
Map
,org.apache.commons.collections4.Get
,org.apache.commons.collections4.IterableGet
,org.apache.commons.collections4.IterableMap
,org.apache.commons.collections4.Put
public class Config extends com.isomorphic.collections.DataTypeMap
This class provides config parameters to all the Java classes in the SmartClient Framework by reading a series of .properties files including server.properties.
If running in a servlets environment, you must use the "Init" servlet and use <load-on-startup> to ensure it initializes before any calls are made to this class.
Then the Config class can be used to read settings as follows:
Config config = Config.getGlobal(); String propertyValue = (String)config.getProperty("propertyName");If running outside of a servlet environment, the following call should be made from the startup thread of the application before any Config APIs are called:
Config.initGlobalConfig();
-
Method Summary
Modifier and TypeMethodDescriptionstatic Object
getProperty
(String propertyName) Returns a property extracted from the SmartClient global configuration file, server.properties.Programmatically inject a value into the global config.void
Programmatically inject a set of values in a Map into the global config.
-
Method Details
-
getProperty
Returns a property extracted from the SmartClient global configuration file, server.properties. Note that the Init servlet must be used if you wish to make use of this API.- Parameters:
propertyName
- The name of the property to retrieve- Returns:
- The property value, or null if it was not found
-
put
Programmatically inject a value into the global config. Note, the timing of this is key. Your programmatic overrides or additions must take place after the core config has loaded from the framework's various.properties
files, but before anything else in the system.The simplest way to achieve this is to have your programmatic changes to config invoked from a servlet which is configured in
web.xml
with aload-on-startup
parameter of 2, like this:<servlet> <servlet-name>MyConfigChanges</servlet-name> <servlet-class>com.company.servlet.MyConfigChanges</servlet-class> <load-on-startup>2</load-on-startup> </servlet>
The setting of "2" is important, because your code needs to run after the SmartClientInit servlet, but before anything else. If running outside of a servlet environment, you should invoke your config override code from the startup thread of the application, after the call to
Config.initGlobalConfig()
described in the class overview docs, but before any Config APIs are called.- Parameters:
key
- The key of the property to setvalue
- The new value for the property- Returns:
- The property's old value, or null if it was not previously set
-
putAll
Programmatically inject a set of values in a Map into the global config. Seeput(Object, Object)
for important information about timing issues associated with this API.- Parameters:
map
- A Map of property values to apply to the config
-