java.lang.Object
io.helidon.config.AbstractSource
io.helidon.config.AbstractConfigSource
io.helidon.config.DirectoryConfigSource
- All Implemented Interfaces:
ConfigSource
,NodeConfigSource
,PollableSource<Instant>
,Source
,WatchableSource<Path>
,Supplier<ConfigSource>
public class DirectoryConfigSource
extends AbstractConfigSource
implements PollableSource<Instant>, WatchableSource<Path>, NodeConfigSource
ConfigSource
implementation that loads configuration content from a directory on a filesystem.-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Common ancestor for config source builders, taking care of configurable options understood by the config module. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()
Create a fluent API builder to construct a directory config source.A change watcher of this source, if it implementsWatchableSource
and has one configured.static DirectoryConfigSource
Initializes config source instance from configuration properties.boolean
exists()
If the underlying data exist at this time.boolean
isModified
(Instant stamp) This method is invoked to check if this source has changed.load()
Loads the underlying source data.A polling strategy of this source, if it implementsPollableSource
and has one configured.target()
The target of this source.Target type as supported by this source.protected String
uid()
Returns universal id of source to be used to constructAbstractSource.description()
.Methods inherited from class io.helidon.config.AbstractConfigSource
mediaType, parser, toString
Methods inherited from class io.helidon.config.AbstractSource
description, optional, retryPolicy
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface io.helidon.config.spi.ConfigSource
get, init
Methods inherited from interface io.helidon.config.spi.Source
description, optional, retryPolicy
-
Method Details
-
create
public static DirectoryConfigSource create(Config metaConfig) throws ConfigMappingException, MissingValueException Initializes config source instance from configuration properties.Mandatory
properties
, seeConfigSources.directory(String)
:path
- typePath
properties
: seeAbstractConfigSourceBuilder.config(Config)
.- Parameters:
metaConfig
- meta-configuration used to initialize returned config source instance from.- Returns:
- new instance of config source described by
metaConfig
- Throws:
MissingValueException
- in case the configuration tree does not contain all expected sub-nodes required by the mapper implementation to provide instance of Java type.ConfigMappingException
- in case the mapper fails to map the (existing) configuration tree represented by the supplied configuration node to an instance of a given Java type.- See Also:
-
builder
Create a fluent API builder to construct a directory config source.- Returns:
- a new builder instance
-
uid
Description copied from class:AbstractSource
Returns universal id of source to be used to constructAbstractSource.description()
.- Overrides:
uid
in classAbstractSource
- Returns:
- universal id of source
-
isModified
Description copied from interface:PollableSource
This method is invoked to check if this source has changed.- Specified by:
isModified
in interfacePollableSource<Instant>
- Parameters:
stamp
- the stamp of the last loaded content- Returns:
true
if the current data of this config source differ from the loaded data, including cases when the source has disappeared
-
pollingStrategy
Description copied from class:AbstractSource
A polling strategy of this source, if it implementsPollableSource
and has one configured.- Specified by:
pollingStrategy
in interfacePollableSource<Instant>
- Overrides:
pollingStrategy
in classAbstractSource
- Returns:
- polling strategy if any configured
-
changeWatcher
Description copied from class:AbstractSource
A change watcher of this source, if it implementsWatchableSource
and has one configured.- Specified by:
changeWatcher
in interfaceWatchableSource<Path>
- Overrides:
changeWatcher
in classAbstractSource
- Returns:
- change watcher if any configured
-
target
Description copied from interface:WatchableSource
The target of this source.- Specified by:
target
in interfaceWatchableSource<Path>
- Returns:
- target this source is configured with, never
null
-
exists
public boolean exists()Description copied from interface:Source
If the underlying data exist at this time. This is to prevent us loading such a source if we know it does not exist. -
targetType
Description copied from interface:WatchableSource
Target type as supported by this source.- Specified by:
targetType
in interfaceWatchableSource<Path>
- Returns:
- class of the target, by default used for
WatchableSource.target()
-
load
Description copied from interface:NodeConfigSource
Loads the underlying source data. This method is only called when the sourceSource.exists()
.The method can be invoked repeatedly, for example during retries.
- Specified by:
load
in interfaceNodeConfigSource
- Returns:
- An instance of
T
as read from the underlying origin of the data (if it exists) - Throws:
ConfigException
- in case of errors loading from the underlying origin
-