Class RedisConfigurationSource
- All Implemented Interfaces:
ConfigurableConfigurationSource,ConfigurationSource,DefaultableConfigurationSource
A configurable configuration source that stores and looks up properties in a Redis data store.
Configuration are stored as string entries, the property key is of the form: keyPrefix ":PROP:" propertyName "[" [ key "=" value [ "," key "=" value ]* "]".
- Since:
- 1.5
- Author:
- Jeremy Kuhn
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThe configuration query used by the Redis configuration source.static classThe configuration update used by the Redis configuration source.static classThe executable configuration query used by the Redis configuration source.static classThe executable configuration update used by the Redis configuration source.static classThe list configuration query used by the Redis configuration source. -
Field Summary
FieldsFields inherited from class io.inverno.mod.configuration.internal.AbstractConfigurableConfigurationSource
encoderFields inherited from class io.inverno.mod.configuration.internal.AbstractConfigurationSource
decoder, defaultParameters, original -
Constructor Summary
ConstructorsConstructorDescriptionRedisConfigurationSource(RedisClient<String, String> redisClient) Creates a redis configuration source with the specified redis client.RedisConfigurationSource(RedisClient<String, String> redisClient, JoinablePrimitiveEncoder<String> encoder, SplittablePrimitiveDecoder<String> decoder) Creates a redis configuration source with the specified redis client, string value encoder and decoder. -
Method Summary
Modifier and TypeMethodDescriptionCreates a configuration query to retrieve the specified properties.final StringReturns the prefix that is prepended to configuration property keys.Creates a list configuration query to list configuration properties defined with the specified property name.Creates a configuration update to set the configuration properties extracted from the specified values.final voidsetKeyPrefix(String keyPrefix) Sets the prefix that is prepended to configuration property keys.unwrap()Returns the original configuration source.withDefaultingStrategy(DefaultingStrategy defaultingStrategy) Returns a proxy of the defaultable configuration source instance using the specified defaulting strategy.withParameters(List<ConfigurationKey.Parameter> parameters) Defines parameters that specify the context in which configuration properties are to be retrieved.Methods inherited from class io.inverno.mod.configuration.internal.AbstractConfigurableConfigurationSource
getEncoder, set, set, set, set, set, set, set, set, set, set, setEncoderMethods inherited from class io.inverno.mod.configuration.internal.AbstractConfigurationSource
getDecoder, setDecoder, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParametersMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.inverno.mod.configuration.ConfigurationSource
withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters
-
Field Details
-
DEFAULT_KEY_PREFIX
The default key prefix.- See Also:
-
-
Constructor Details
-
RedisConfigurationSource
Creates a redis configuration source with the specified redis client.
- Parameters:
redisClient- a redis client
-
RedisConfigurationSource
public RedisConfigurationSource(RedisClient<String, String> redisClient, JoinablePrimitiveEncoder<String> encoder, SplittablePrimitiveDecoder<String> decoder) Creates a redis configuration source with the specified redis client, string value encoder and decoder.
- Parameters:
redisClient- a redis clientencoder- a string encoderdecoder- a string decoder
-
-
Method Details
-
getKeyPrefix
Returns the prefix that is prepended to configuration property keys.
A configuration property key is of the form:
keyPrefix ":PROP:" propertyName "[" [ key "=" value [ "," key "=" value ]* "]".- Returns:
- the key prefix
-
setKeyPrefix
Sets the prefix that is prepended to configuration property keys.
A configuration property key is of the form:
keyPrefix ":PROP:" propertyName "[" [ key "=" value [ "," key "=" value ]* "]".- Parameters:
keyPrefix- the key prefix to set
-
withParameters
public RedisConfigurationSource withParameters(List<ConfigurationKey.Parameter> parameters) throws IllegalArgumentException Description copied from interface:ConfigurationSourceDefines parameters that specify the context in which configuration properties are to be retrieved.
- Specified by:
withParametersin interfaceConfigurationSource- Specified by:
withParametersin classio.inverno.mod.configuration.internal.AbstractConfigurationSource<RedisConfigurationSource.RedisConfigurationQuery,RedisConfigurationSource.RedisExecutableConfigurationQuery, RedisConfigurationSource.RedisListConfigurationQuery, String, RedisConfigurationSource> - Parameters:
parameters- a list of parameters- Returns:
- the executable configuration query
- Throws:
IllegalArgumentException- if parameters were specified more than once
-
withDefaultingStrategy
Description copied from interface:DefaultableConfigurationSourceReturns a proxy of the defaultable configuration source instance using the specified defaulting strategy.
- Specified by:
withDefaultingStrategyin interfaceDefaultableConfigurationSource- Parameters:
defaultingStrategy- a defaulting strategy- Returns:
- a new defaultable configuration source
-
unwrap
Description copied from interface:ConfigurationSourceReturns the original configuration source.
A configuration source can be decorated in order to provide a fixed set of parameters for all queries or to use a particular
DefaultingStrategywhen considering aDefaultableConfigurationSource. This method helps retrieving the original source (i.e. before any transformations).- Specified by:
unwrapin interfaceConfigurationSource- Overrides:
unwrapin classio.inverno.mod.configuration.internal.AbstractConfigurationSource<RedisConfigurationSource.RedisConfigurationQuery,RedisConfigurationSource.RedisExecutableConfigurationQuery, RedisConfigurationSource.RedisListConfigurationQuery, String, RedisConfigurationSource> - Returns:
- the original configuration or this configuration
-
get
public RedisConfigurationSource.RedisExecutableConfigurationQuery get(String... names) throws IllegalArgumentException Description copied from interface:ConfigurationSourceCreates a configuration query to retrieve the specified properties.
- Specified by:
getin interfaceConfigurationSource- Specified by:
getin classio.inverno.mod.configuration.internal.AbstractConfigurationSource<RedisConfigurationSource.RedisConfigurationQuery,RedisConfigurationSource.RedisExecutableConfigurationQuery, RedisConfigurationSource.RedisListConfigurationQuery, String, RedisConfigurationSource> - Parameters:
names- an array of property names- Returns:
- an executable configuration query
- Throws:
IllegalArgumentException- if the array of names is null or empty
-
list
public RedisConfigurationSource.RedisListConfigurationQuery list(String name) throws IllegalArgumentException Description copied from interface:ConfigurationSourceCreates a list configuration query to list configuration properties defined with the specified property name.
- Specified by:
listin interfaceConfigurationSource- Specified by:
listin classio.inverno.mod.configuration.internal.AbstractConfigurationSource<RedisConfigurationSource.RedisConfigurationQuery,RedisConfigurationSource.RedisExecutableConfigurationQuery, RedisConfigurationSource.RedisListConfigurationQuery, String, RedisConfigurationSource> - Parameters:
name- a property name- Returns:
- a list configuration query
- Throws:
IllegalArgumentException- if the name is null or empty
-
set
public RedisConfigurationSource.RedisExecutableConfigurationUpdate set(Map<String, Object> values) throws IllegalArgumentExceptionDescription copied from interface:ConfigurableConfigurationSourceCreates a configuration update to set the configuration properties extracted from the specified values.
- Specified by:
setin interfaceConfigurableConfigurationSource- Specified by:
setin classio.inverno.mod.configuration.internal.AbstractConfigurableConfigurationSource<RedisConfigurationSource.RedisConfigurationQuery,RedisConfigurationSource.RedisExecutableConfigurationQuery, RedisConfigurationSource.RedisListConfigurationQuery, RedisConfigurationSource.RedisConfigurationUpdate, RedisConfigurationSource.RedisExecutableConfigurationUpdate, String, RedisConfigurationSource> - Parameters:
values- a map containing properties keys and values to set in the configuration source- Returns:
- an executable configuration update
- Throws:
IllegalArgumentException- if the map of properties is null or empty
-