T
- The Configuration
object to be serialized and deserialized in the
implementation of this interfacepublic class ConfigStore<T extends Configuration> extends java.lang.Object implements ConfigTargetStore
ConfigStore
which relies on the provided Persister
for data persistence.
The ZNode structure in Zookeeper is as follows:
rootPath/
-> ConfigTarget (contains UUID)
-> Configurations/
-> [Config-ID-0] (contains serialized config)
-> [Config-ID-1] (contains serialized config)
-> ...
Constructor and Description |
---|
ConfigStore(ConfigurationFactory<T> factory,
Persister persister)
Creates a new
ConfigStore which uses the provided Persister to access configuration data. |
Modifier and Type | Method and Description |
---|---|
void |
clear(java.util.UUID id)
Deletes the configuration with the provided UUID, or does nothing if no matching
configuration is found.
|
T |
fetch(java.util.UUID id)
Retrieves and deserializes the
Configuration assigned to the provided UUID, or throws
an exception if no config with the provided UUID was found. |
java.util.UUID |
getTargetConfig()
Returns the current ID of the active target configuration, or throws an exception if none is
set.
|
java.util.Collection<java.util.UUID> |
list()
Returns a list of all stored configuration UUIDs, or an empty list if none are found.
|
void |
setTargetConfig(java.util.UUID id)
Stores the ID of the active target configuration, replacing any current value.
|
java.util.UUID |
store(T config)
Serializes the provided
Configuration using its Configuration.getBytes()
function, writes it to storage, and returns the UUID which it was stored against. |
public ConfigStore(ConfigurationFactory<T> factory, Persister persister)
ConfigStore
which uses the provided Persister
to access configuration data.public java.util.UUID store(T config) throws ConfigStoreException
Configuration
using its Configuration.getBytes()
function, writes it to storage, and returns the UUID which it was stored against.ConfigStoreException
- if serialization or writing failspublic T fetch(java.util.UUID id) throws ConfigStoreException
Configuration
assigned to the provided UUID, or throws
an exception if no config with the provided UUID was found.id
- The UUID of the configuration to be fetchedConfigStoreException
- if retrieval or deserialization fails, or if the requested
config is missingpublic void clear(java.util.UUID id) throws ConfigStoreException
id
- The UUID of the configuration to be deletedConfigStoreException
- if the configuration is found but deletion failspublic java.util.Collection<java.util.UUID> list() throws ConfigStoreException
ConfigStoreException
- if list retrieval failspublic void setTargetConfig(java.util.UUID id) throws ConfigStoreException
ConfigTargetStore
setTargetConfig
in interface ConfigTargetStore
ConfigStoreException
- if writing the ID failsConfigTargetStore.getTargetConfig()
public java.util.UUID getTargetConfig() throws ConfigStoreException
ConfigTargetStore
getTargetConfig
in interface ConfigTargetStore
ConfigStoreException
- if reading or deserializing the ID fails, or no value is setConfigTargetStore.setTargetConfig(UUID)