public class ConfigurationCache extends Object implements ConfigRepositoryIfc
Repository.Meta
Modifier and Type | Field and Description |
---|---|
static String |
CONFIG_DUMP_FILE_PROP_DEF
Field description
|
static String |
CONFIG_DUMP_FILE_PROP_KEY
Field description
|
RELOAD_DELAY, RESOURCE_URI
COMP_REPO_BIND
Constructor and Description |
---|
ConfigurationCache() |
Modifier and Type | Method and Description |
---|---|
void |
addItem(ConfigItem item)
The method adds a new or updates existing Item in the repository.
|
void |
addItem(String compName,
ConfigItem item)
Method description
|
void |
addItem(String key,
Object value)
Method adds an Item to the configuration repository where the key is
the item key constructed of component name, node name and property key name.
|
void |
addItemNoStore(ConfigItem item)
The method adds a new or updates existing Item.
|
void |
addRepoChangeListener(RepositoryChangeListenerIfc<ConfigItem> repoChangeListener)
Adds a listener for repository Item change.
|
Collection<ConfigItem> |
allItems()
Returns a collection with all items stored in the repository.
|
boolean |
contains(String key)
The method checks whether the item is stored in the repository.
|
void |
destroy()
Method destroys this instance of ComponentRepository releasing resources
allocated for this instance of ComponentRepository if possible
|
Object |
get(String compName,
String node,
String key,
Object def)
Returns a configuration setting for a given component, node and key.
|
String[] |
getCompNames()
Returns all component names for which there are some configuration settings
available.
|
void |
getDefaults(Map<String,Object> defs,
Map<String,Object> params)
The 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.
|
String |
getDefHostname()
Method description
|
Map<String,Object> |
getInitProperties()
Method description
|
ConfigItem |
getItem(String key)
The method returns all item configuration parameters for a key or
null if the item does not exist in the repository. |
ConfigItem |
getItem(String compName,
String node,
String key)
Method description
|
ConfigItem |
getItemInstance()
Creates a new, uninitialized instance of the repository Item.
|
Set<ConfigItem> |
getItemsForComponent(String compName)
Method description
|
String[] |
getKeys(String compName,
String node)
Returns an array of all configuration keys for a given component and configuration
node.
|
Map<String,Object> |
getProperties(String compName)
Returns all known settings for the given component name.
|
void |
initRepository(String resource_uri,
Map<String,String> params)
The method is called to initialize the data repository.
|
Iterator<ConfigItem> |
iterator() |
void |
putProperties(String compName,
Map<String,Object> props)
Sets/adds properties for the given component name.
|
void |
reload()
This method is called to reload items from the database or other permanent
storage.
|
void |
remove(String compName,
String node,
String key)
Removes a configuration setting from the configuration repository.
|
void |
removeItem(String key)
The method is called to remove given Item from the memory cache and
permanent storage.
|
void |
removeItem(String compName,
ConfigItem item)
Method description
|
void |
removeRepoChangeListener(RepositoryChangeListenerIfc<ConfigItem> repoChangeListener)
Removes a listener for repository Item change.
|
void |
set(String compName,
String node,
String key,
Object value)
Puts/sets/adds/updates a configuration setting to the configuration repository.
|
void |
setAutoloadTimer(long delay)
Sets autoload task to periodically reload data from database.
|
void |
setDefHostname(String hostname)
This is used to load a configuration for a selected cluster node.
|
void |
setProperties(Map<String,Object> properties)
The method is called to set configuration for this repository
implementation.
|
int |
size()
The method returns number of items in the repository.
|
void |
store()
The method is called to store all data in the database.
|
String |
validateItem(ConfigItem item)
Performs Item validation to check whether it meets the repository policy.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public static final String CONFIG_DUMP_FILE_PROP_DEF
public static final String CONFIG_DUMP_FILE_PROP_KEY
public void addRepoChangeListener(RepositoryChangeListenerIfc<ConfigItem> repoChangeListener)
ComponentRepository
addRepoChangeListener
in interface ComponentRepository<ConfigItem>
public void removeRepoChangeListener(RepositoryChangeListenerIfc<ConfigItem> repoChangeListener)
ComponentRepository
removeRepoChangeListener
in interface ComponentRepository<ConfigItem>
public void addItem(String compName, ConfigItem item)
compName
- item
- public void addItemNoStore(ConfigItem item)
ComponentRepository
addItemNoStore
in interface ComponentRepository<ConfigItem>
item
- a Item
with all it's configuration parameters.public void addItem(ConfigItem item) throws TigaseDBException
ComponentRepository
addItem
in interface ComponentRepository<ConfigItem>
item
- a Item
with all it's configuration parameters.TigaseDBException
public void addItem(String key, Object value) throws ConfigurationException
ConfigRepositoryIfc
addItem
in interface ConfigRepositoryIfc
ConfigurationException
public Collection<ConfigItem> allItems() throws TigaseDBException
ComponentRepository
allItems
in interface ComponentRepository<ConfigItem>
TigaseDBException
public boolean contains(String key)
ComponentRepository
contains
in interface ComponentRepository<ConfigItem>
key
- a String
with key to search for.boolean
value true
if the item exists
in the repository or false
of it does not.public void destroy()
ComponentRepository
destroy
in interface ComponentRepository<ConfigItem>
public Object get(String compName, String node, String key, Object def)
ConfigRepositoryIfc
get
in interface ConfigRepositoryIfc
public String[] getCompNames()
ConfigRepositoryIfc
getCompNames
in interface ConfigRepositoryIfc
public String getDefHostname()
public void getDefaults(Map<String,Object> defs, Map<String,Object> params)
ComponentRepository
getDefaults
in interface ComponentRepository<ConfigItem>
defs
- is a Map
collection where all repository
configuration defaults must be put.params
- is a Map
collection 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.public Map<String,Object> getInitProperties()
ConfigRepositoryIfc
getInitProperties
in interface ConfigRepositoryIfc
public ConfigItem getItem(String compName, String node, String key)
compName
- node
- key
- public ConfigItem getItem(String key)
ComponentRepository
null
if the item does not exist in the repository.getItem
in interface ComponentRepository<ConfigItem>
key
- a String
with item identifier to search for.Item
for a given key or null
if the
item is not in the repository.public ConfigItem getItemInstance()
ComponentRepository
getItemInstance
in interface ComponentRepository<ConfigItem>
public Set<ConfigItem> getItemsForComponent(String compName)
ConfigRepositoryIfc
getItemsForComponent
in interface ConfigRepositoryIfc
public String[] getKeys(String compName, String node)
ConfigRepositoryIfc
getKeys
in interface ConfigRepositoryIfc
public Map<String,Object> getProperties(String compName) throws ConfigurationException
ConfigRepositoryIfc
getProperties
in interface ConfigRepositoryIfc
ConfigurationException
public void initRepository(String resource_uri, Map<String,String> params) throws DBInitException
Repository
resource_uri
parameter as the database connection string or via params
map if
the required repository parameters are more complex or both.initRepository
in interface Repository
resource_uri
- value in most cases representing the database connection string.params
- is a Map
with repository properties necessary to initialize
and perform all the functions. The initialization parameters are implementation dependent.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.public Iterator<ConfigItem> iterator()
iterator
in interface Iterable<ConfigItem>
public void putProperties(String compName, Map<String,Object> props) throws ConfigurationException
ConfigRepositoryIfc
putProperties
in interface ConfigRepositoryIfc
ConfigurationException
public void reload() throws TigaseDBException
ComponentRepository
reload
in interface ComponentRepository<ConfigItem>
TigaseDBException
public void remove(String compName, String node, String key)
ConfigRepositoryIfc
remove
in interface ConfigRepositoryIfc
public void removeItem(String compName, ConfigItem item)
compName
- item
- public void removeItem(String key) throws TigaseDBException
ComponentRepository
removeItem
in interface ComponentRepository<ConfigItem>
key
- a String
with domain name to remove.TigaseDBException
public void set(String compName, String node, String key, Object value)
ConfigRepositoryIfc
set
in interface ConfigRepositoryIfc
public void setDefHostname(String hostname)
ConfigRepositoryIfc
setDefHostname
in interface ConfigRepositoryIfc
public void setProperties(Map<String,Object> properties)
ComponentRepository
setProperties
in interface ComponentRepository<ConfigItem>
properties
- a Map
with configuration settings. Content of this
Map
must not be modified. This read-only collection.public int size()
ComponentRepository
size
in interface ComponentRepository<ConfigItem>
int
value with number of items in the repository.public void store() throws TigaseDBException
ComponentRepository
store
in interface ComponentRepository<ConfigItem>
TigaseDBException
public String validateItem(ConfigItem item)
ComponentRepository
null
, otherwise
it returns an error description.validateItem
in interface ComponentRepository<ConfigItem>
item
- is an Item
object to perform validation checking
upon.null
on success and an error message otherwise.public void setAutoloadTimer(long delay)
ComponentRepository
setAutoloadTimer
in interface ComponentRepository<ConfigItem>
delay
- in seconds between each database reload.Copyright © 2018 "Tigase, Inc.". All rights reserved.