Package tigase.conf
Class ConfigurationCache
java.lang.Object
tigase.conf.ConfigurationCache
- All Implemented Interfaces:
Iterable<ConfigItem>,ConfigRepositoryIfc,ComponentRepository<ConfigItem>,Repository
- Direct Known Subclasses:
ConfigSQLRepository,ConfigXMLRepository
Created: Dec 10, 2009 2:02:41 PM
- Author:
- Artur Hefczyc
-
Nested Class Summary
Nested classes/interfaces inherited from interface tigase.db.Repository
Repository.Meta, Repository.SchemaId -
Field Summary
FieldsFields inherited from interface tigase.db.comp.ComponentRepository
COMP_REPO_BINDFields inherited from interface tigase.conf.ConfigRepositoryIfc
RELOAD_DELAY, RESOURCE_URI -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidMethod adds an Item to the configuration repository where the key is the item key constructed of component name, node name and property key name.voidaddItem(String compName, ConfigItem item) voidaddItem(ConfigItem item) The method adds a new or updates existing Item in the repository.voidaddItemNoStore(ConfigItem item) The method adds a new or updates existing Item.voidaddRepoChangeListener(RepositoryChangeListenerIfc<ConfigItem> repoChangeListener) Adds a listener for repository Item change.allItems()Returns a collection with all items stored in the repository.booleanThe method checks whether the item is stored in the repository.voiddestroy()Method destroys this instance of ComponentRepository releasing resources allocated for this instance of ComponentRepository if possibleReturns a configuration setting for a given component, node and key.String[]Returns all component names for which there are some configuration settings available.voidDeprecated.The method returns all item configuration parameters for a key ornullif the item does not exist in the repository.Creates a new, uninitialized instance of the repository Item.getItemsForComponent(String compName) Get set of config items stored for componentString[]Returns an array of all configuration keys for a given component and configuration node.getProperties(String compName) Deprecated.voidinitRepository(String resource_uri, Map<String, String> params) Deprecated.iterator()voidputProperties(String compName, Map<String, Object> props) Sets/adds properties for the given component name.voidreload()This method is called to reload items from the database or other permanent storage.voidRemoves a configuration setting from the configuration repository.voidremoveItem(String key) The method is called to remove given Item from the memory cache and permanent storage.voidremoveItem(String compName, ConfigItem item) voidremoveItemNoStore(String key) voidremoveRepoChangeListener(RepositoryChangeListenerIfc<ConfigItem> repoChangeListener) Removes a listener for repository Item change.voidPuts/sets/adds/updates a configuration setting to the configuration repository.voidsetAutoloadTimer(long delay) Sets autoload task to periodically reload data from database.voidsetDefHostname(String hostname) This is used to load a configuration for a selected cluster node.voidsetProperties(Map<String, Object> properties) Deprecated.intsize()The method returns number of items in the repository.voidstore()The method is called to store all data in the database.validateItem(ConfigItem item) Performs Item validation to check whether it meets the repository policy.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
CONFIG_DUMP_FILE_PROP_DEF
- See Also:
-
CONFIG_DUMP_FILE_PROP_KEY
- See Also:
-
-
Constructor Details
-
ConfigurationCache
public ConfigurationCache()
-
-
Method Details
-
addRepoChangeListener
Description copied from interface:ComponentRepositoryAdds a listener for repository Item change.- Specified by:
addRepoChangeListenerin interfaceComponentRepository<ConfigItem>
-
removeRepoChangeListener
Description copied from interface:ComponentRepositoryRemoves a listener for repository Item change.- Specified by:
removeRepoChangeListenerin interfaceComponentRepository<ConfigItem>
-
addItem
-
addItemNoStore
Description copied from interface:ComponentRepositoryThe method adds a new or updates existing Item. It needs to have all fields set correctly. After this method call is finished a new added item must be available in the component repository. The method adds the item to memory cache but not to a permanent storage.- Specified by:
addItemNoStorein interfaceComponentRepository<ConfigItem>- Parameters:
item- aItemwith all it's configuration parameters.
-
addItem
Description copied from interface:ComponentRepositoryThe method adds a new or updates existing Item in the repository. It needs to have all fields set correctly. After this method call is finished a new added item must be available in the component repository. The method adds the item to memory cache and permanent storage.- Specified by:
addItemin interfaceComponentRepository<ConfigItem>- Parameters:
item- aItemwith all it's configuration parameters.- Throws:
TigaseDBException
-
addItem
Description copied from interface:ConfigRepositoryIfcMethod adds an Item to the configuration repository where the key is the item key constructed of component name, node name and property key name.- Specified by:
addItemin interfaceConfigRepositoryIfc- Throws:
ConfigurationException
-
allItems
Description copied from interface:ComponentRepositoryReturns a collection with all items stored in the repository.- Specified by:
allItemsin interfaceComponentRepository<ConfigItem>- Throws:
TigaseDBException
-
contains
Description copied from interface:ComponentRepositoryThe method checks whether the item is stored in the repository.- Specified by:
containsin interfaceComponentRepository<ConfigItem>- Parameters:
key- aStringwith key to search for.- Returns:
- a
booleanvaluetrueif the item exists in the repository orfalseof it does not.
-
destroy
public void destroy()Description copied from interface:ComponentRepositoryMethod destroys this instance of ComponentRepository releasing resources allocated for this instance of ComponentRepository if possible- Specified by:
destroyin interfaceComponentRepository<ConfigItem>
-
get
Description copied from interface:ConfigRepositoryIfcReturns a configuration setting for a given component, node and key. If the configuration parameters is not found, returns given default value.- Specified by:
getin interfaceConfigRepositoryIfc- Returns:
- value
-
getCompNames
Description copied from interface:ConfigRepositoryIfcReturns all component names for which there are some configuration settings available.- Specified by:
getCompNamesin interfaceConfigRepositoryIfc- Returns:
- array of component names
-
getDefHostname
-
setDefHostname
Description copied from interface:ConfigRepositoryIfcThis is used to load a configuration for a selected cluster node. The configuration repository (file or database) may contain settings for all cluster nodes, some of the settings may be exclusive to one or another cluster node. This method informs the repository what node name (hostname) it is running on.- Specified by:
setDefHostnamein interfaceConfigRepositoryIfc
-
getDefaults
Deprecated.Description copied from interface:ComponentRepositoryThe method is called to obtain default configuration settings if there are any for this repository implementation The configuration settings are implementation dependent and there are no defaults set by the server. Default settings returned by this method are then saved in the configuration file and presented to the admin for further adjustments.- Specified by:
getDefaultsin interfaceComponentRepository<ConfigItem>- Parameters:
defs- is aMapcollection where all repository configuration defaults must be put.params- is aMapcollection with some preset properties for the server. These settings can be used to adjust repository defaults, for example they can contain database connection URL or initial list of virtual domains.
-
getInitProperties
- Specified by:
getInitPropertiesin interfaceConfigRepositoryIfc
-
getItem
-
getItem
Description copied from interface:ComponentRepositoryThe method returns all item configuration parameters for a key ornullif the item does not exist in the repository.- Specified by:
getItemin interfaceComponentRepository<ConfigItem>- Parameters:
key- aStringwith item identifier to search for.- Returns:
- a
Itemfor a given key ornullif the item is not in the repository.
-
getItemInstance
Description copied from interface:ComponentRepositoryCreates a new, uninitialized instance of the repository Item.- Specified by:
getItemInstancein interfaceComponentRepository<ConfigItem>- Returns:
- a new, uninitialized instance of the repository Item.
-
getItemsForComponent
Description copied from interface:ConfigRepositoryIfcGet set of config items stored for component- Specified by:
getItemsForComponentin interfaceConfigRepositoryIfc- Returns:
- set of component items
-
getKeys
Description copied from interface:ConfigRepositoryIfcReturns an array of all configuration keys for a given component and configuration node.- Specified by:
getKeysin interfaceConfigRepositoryIfc- Returns:
- array of keys for component and node
-
getProperties
Deprecated.Description copied from interface:ConfigRepositoryIfcReturns all known settings for the given component name.- Specified by:
getPropertiesin interfaceConfigRepositoryIfc- Returns:
- map with configuration
- Throws:
ConfigurationException
-
initRepository
@Deprecated public void initRepository(String resource_uri, Map<String, String> params) throws DBInitExceptionDeprecated.Description copied from interface:RepositoryMethod is deprecated and should not be user any more.
The method is called to initialize the data repository. Depending on the implementation all the initialization parameters can be passed either viaresource_uriparameter as the database connection string or viaparamsmap if the required repository parameters are more complex or both.- Specified by:
initRepositoryin interfaceRepository- Parameters:
resource_uri- value in most cases representing the database connection string.params- is aMapwith repository properties necessary to initialize and perform all the functions. The initialization parameters are implementation dependent.- Throws:
DBInitException- if there was an error during repository initialization. Some implementations, though, perform so called lazy initialization so even though there is a problem with the underlying repository it may not be signaled through this method call.
-
iterator
- Specified by:
iteratorin interfaceIterable<ConfigItem>
-
putProperties
Description copied from interface:ConfigRepositoryIfcSets/adds properties for the given component name.- Specified by:
putPropertiesin interfaceConfigRepositoryIfc- Throws:
ConfigurationException
-
reload
Description copied from interface:ComponentRepositoryThis method is called to reload items from the database or other permanent storage. It is possible that items list is modified externally by third-party system. When all modifications are done this method is called to refresh the class cache. Whether the implementation load whole list or just last modifications is implementation dependent.- Specified by:
reloadin interfaceComponentRepository<ConfigItem>- Throws:
TigaseDBException
-
remove
Description copied from interface:ConfigRepositoryIfcRemoves a configuration setting from the configuration repository.- Specified by:
removein interfaceConfigRepositoryIfc
-
removeItem
-
removeItem
Description copied from interface:ComponentRepositoryThe method is called to remove given Item from the memory cache and permanent storage. After this method is completed the item should no longer be available in the component repository.- Specified by:
removeItemin interfaceComponentRepository<ConfigItem>- Parameters:
key- aStringwith domain name to remove.- Throws:
TigaseDBException
-
removeItemNoStore
- Specified by:
removeItemNoStorein interfaceComponentRepository<ConfigItem>
-
set
Description copied from interface:ConfigRepositoryIfcPuts/sets/adds/updates a configuration setting to the configuration repository.- Specified by:
setin interfaceConfigRepositoryIfc
-
setProperties
Deprecated.Description copied from interface:ComponentRepositoryThe method is called to set configuration for this repository implementation. The configuration is repository implementation dependent. There are no default settings for the repository.- Specified by:
setPropertiesin interfaceComponentRepository<ConfigItem>- Parameters:
properties- aMapwith configuration settings. Content of thisMapmust not be modified. This read-only collection.
-
size
public int size()Description copied from interface:ComponentRepositoryThe method returns number of items in the repository.- Specified by:
sizein interfaceComponentRepository<ConfigItem>- Returns:
- an
intvalue with number of items in the repository.
-
store
Description copied from interface:ComponentRepositoryThe method is called to store all data in the database. It is used when the repository has been changed in some way and the changes have to be put to a permanent storage for later retrieval.- Specified by:
storein interfaceComponentRepository<ConfigItem>- Throws:
TigaseDBException
-
validateItem
Description copied from interface:ComponentRepositoryPerforms Item validation to check whether it meets the repository policy. If validation is successful the method returnsnull, otherwise it returns an error description.- Specified by:
validateItemin interfaceComponentRepository<ConfigItem>- Parameters:
item- is anItemobject to perform validation checking upon.- Returns:
nullon success and an error message otherwise.
-
setAutoloadTimer
public void setAutoloadTimer(long delay) Description copied from interface:ComponentRepositorySets autoload task to periodically reload data from database.- Specified by:
setAutoloadTimerin interfaceComponentRepository<ConfigItem>- Parameters:
delay- in seconds between each database reload.
-