Class PropertyFileConfigurationSource
- All Implemented Interfaces:
ConfigurationSource<AbstractHashConfigurationSource.HashConfigurationQuery<String,
,PropertyFileConfigurationSource>, AbstractHashConfigurationSource.HashExecutableConfigurationQuery<String, PropertyFileConfigurationSource>, AbstractHashConfigurationSource.HashListConfigurationQuery<String, PropertyFileConfigurationSource>> DefaultableConfigurationSource<AbstractHashConfigurationSource.HashConfigurationQuery<String,
PropertyFileConfigurationSource>, AbstractHashConfigurationSource.HashExecutableConfigurationQuery<String, PropertyFileConfigurationSource>, AbstractHashConfigurationSource.HashListConfigurationQuery<String, PropertyFileConfigurationSource>, PropertyFileConfigurationSource>
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.AbstractHashConfigurationSource
AbstractHashConfigurationSource.HashConfigurationQuery<A,
B extends AbstractHashConfigurationSource<A, B>>, AbstractHashConfigurationSource.HashConfigurationQueryResult<A, B extends AbstractHashConfigurationSource<A, B>>, AbstractHashConfigurationSource.HashExecutableConfigurationQuery<A, B extends AbstractHashConfigurationSource<A, B>>, AbstractHashConfigurationSource.HashListConfigurationQuery<A, B extends AbstractHashConfigurationSource<A, B>> -
Field Summary
Fields inherited from class io.inverno.mod.configuration.AbstractHashConfigurationSource
defaultingStrategy, initial
Fields inherited from class io.inverno.mod.configuration.AbstractConfigurationSource
decoder
-
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.Methods inherited from class io.inverno.mod.configuration.AbstractHashConfigurationSource
get, list, unwrap
Methods inherited from class io.inverno.mod.configuration.AbstractConfigurationSource
getDecoder, setDecoder
-
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
-
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:AbstractHashConfigurationSource
Loads the configuration properties.
- Specified by:
load
in classAbstractHashConfigurationSource<String,
PropertyFileConfigurationSource> - Returns:
- A mono emitting the list of configuration properties
-