Class PropertyFileConfigurationSource
- All Implemented Interfaces:
ConfigurationSource
,DefaultableConfigurationSource
A configuration source that looks up properties in a regular property file.
This source supports parameterized configuration properties defined in a configuration file as follows:
web.server_port=8080
web.server_port[profile="ssl"]=8443
db.url[env="dev"]=jdbc:oracle:thin:@dev.db.server:1521:sid
db.url[env="prod",zone="eu"]=jdbc:oracle:thin:@prod_eu.db.server:1521:sid
db.url[env="prod",zone="us"]=jdbc:oracle:thin:@prod_us.db.server:1521:sid
- Since:
- 1.0
- Author:
- Jeremy Kuhn
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.inverno.mod.configuration.internal.AbstractHashConfigurationSource
io.inverno.mod.configuration.internal.AbstractHashConfigurationSource.HashConfigurationQuery<A,
B extends io.inverno.mod.configuration.internal.AbstractHashConfigurationSource<A, B>>, io.inverno.mod.configuration.internal.AbstractHashConfigurationSource.HashConfigurationQueryResult<A, B extends io.inverno.mod.configuration.internal.AbstractHashConfigurationSource<A, B>>, io.inverno.mod.configuration.internal.AbstractHashConfigurationSource.HashExecutableConfigurationQuery<A, B extends io.inverno.mod.configuration.internal.AbstractHashConfigurationSource<A, B>>, io.inverno.mod.configuration.internal.AbstractHashConfigurationSource.HashListConfigurationQuery<A, B extends io.inverno.mod.configuration.internal.AbstractHashConfigurationSource<A, B>> -
Field Summary
Fields inherited from class io.inverno.mod.configuration.internal.AbstractHashConfigurationSource
defaultingStrategy
Fields inherited from class io.inverno.mod.configuration.internal.AbstractConfigurationSource
decoder, defaultParameters, original
-
Constructor Summary
ConstructorDescriptionPropertyFileConfigurationSource
(Resource propertyResource) Creates a property file configuration source with the specified resourcePropertyFileConfigurationSource
(Resource propertyResource, SplittablePrimitiveDecoder<String> decoder) Creates a property file configuration source with the specified resource and string value decoder.PropertyFileConfigurationSource
(InputStream propertyInput) Creates a property file configuration source with the specified input stream.PropertyFileConfigurationSource
(InputStream propertyInput, SplittablePrimitiveDecoder<String> decoder) Creates a property file configuration source with the specified input stream and string value decoder.PropertyFileConfigurationSource
(Path propertyFile) Creates a property file configuration source with the.properties
file at the specified path.PropertyFileConfigurationSource
(Path propertyFile, SplittablePrimitiveDecoder<String> decoder) Creates a property file configuration source with the.properties
file at the specified path and the specified string value decoder. -
Method Summary
Modifier and TypeMethodDescriptionReturns the time-to-live duration of the properties loaded withload()
.protected Mono
<List<ConfigurationProperty>> load()
Loads the configuration properties.void
setPropertiesTTL
(Duration ttl) Sets the time-to-live duration of the properties loaded withload()
.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.AbstractHashConfigurationSource
get, list
Methods inherited from class io.inverno.mod.configuration.internal.AbstractConfigurationSource
getDecoder, setDecoder, unwrap, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.inverno.mod.configuration.ConfigurationSource
unwrap, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters, withParameters
-
Constructor Details
-
PropertyFileConfigurationSource
Creates a property file configuration source with the
.properties
file at the specified path.- Parameters:
propertyFile
- the path to the.properties
file
-
PropertyFileConfigurationSource
public PropertyFileConfigurationSource(Path propertyFile, SplittablePrimitiveDecoder<String> decoder) Creates a property file configuration source with the
.properties
file at the specified path and the specified string value decoder.- Parameters:
propertyFile
- the path to the.properties
filedecoder
- a string decoder
-
PropertyFileConfigurationSource
Creates a property file configuration source with the specified input stream.
- Parameters:
propertyInput
- the.properties
input
-
PropertyFileConfigurationSource
public PropertyFileConfigurationSource(InputStream propertyInput, SplittablePrimitiveDecoder<String> decoder) Creates a property file configuration source with the specified input stream and string value decoder.
- Parameters:
propertyInput
- the.properties
inputdecoder
- a string decoder
-
PropertyFileConfigurationSource
Creates a property file configuration source with the specified resource
- Parameters:
propertyResource
- the.properties
resource
-
PropertyFileConfigurationSource
public PropertyFileConfigurationSource(Resource propertyResource, SplittablePrimitiveDecoder<String> decoder) Creates a property file configuration source with the specified resource and string value decoder.
- Parameters:
propertyResource
- the.properties
resourcedecoder
- a string decoder
-
-
Method Details
-
withParameters
public PropertyFileConfigurationSource withParameters(List<ConfigurationKey.Parameter> parameters) throws IllegalArgumentException Description copied from interface:ConfigurationSource
Defines parameters that specify the context in which configuration properties are to be retrieved.
- Specified by:
withParameters
in interfaceConfigurationSource
- Specified by:
withParameters
in classio.inverno.mod.configuration.internal.AbstractConfigurationSource<io.inverno.mod.configuration.internal.AbstractHashConfigurationSource.HashConfigurationQuery<String,
PropertyFileConfigurationSource>, io.inverno.mod.configuration.internal.AbstractHashConfigurationSource.HashExecutableConfigurationQuery<String, PropertyFileConfigurationSource>, io.inverno.mod.configuration.internal.AbstractHashConfigurationSource.HashListConfigurationQuery<String, PropertyFileConfigurationSource>, String, PropertyFileConfigurationSource> - Parameters:
parameters
- a list of parameters- Returns:
- the executable configuration query
- Throws:
IllegalArgumentException
- if parameters were specified more than once
-
withDefaultingStrategy
public PropertyFileConfigurationSource withDefaultingStrategy(DefaultingStrategy defaultingStrategy) Description copied from interface:DefaultableConfigurationSource
Returns a proxy of the defaultable configuration source instance using the specified defaulting strategy.
- Parameters:
defaultingStrategy
- a defaulting strategy- Returns:
- a new defaultable configuration source
-
setPropertiesTTL
Sets the time-to-live duration of the properties loaded with
load()
.If set to null, which is the default, properties are cached indefinitely.
Note that this ttl doesn't apply to a source created with an
InputStream
which is cached indefinitely since the steam can't be read twice.- Parameters:
ttl
- the properties time-to-live or null to cache properties indefinitely
-
getPropertiesTTL
Returns the time-to-live duration of the properties loaded with
load()
.- Returns:
- the properties time-to-live or null if properties are cached indefinitely
-
load
Description copied from class:io.inverno.mod.configuration.internal.AbstractHashConfigurationSource
Loads the configuration properties.
- Specified by:
load
in classio.inverno.mod.configuration.internal.AbstractHashConfigurationSource<String,
PropertyFileConfigurationSource> - Returns:
- A mono emitting the list of configuration properties
-