public class ConfigTreePropertySource extends EnumerablePropertySource<Path> implements OriginLookup<String>
PropertySource
backed by a directory tree that contains files for each value.
The PropertySource
will recursively scan a given source directory and expose a
property for each file found. The property name will be the filename, and the property
value will be the contents of the file.
Directories are only scanned when the source is first created. The directory is not
monitored for updates, so files should not be added or removed. However, the contents
of a file can be updated as long as the property source was created with a
ConfigTreePropertySource.Option.ALWAYS_READ
option. Nested directories are included in the source, but
with a '.'
rather than '/'
used as the path separator.
Property values are returned as ConfigTreePropertySource.Value
instances which allows them to be treated
either as an InputStreamSource
or as a CharSequence
. In addition, if
used with an Environment
configured with an
ApplicationConversionService
, property values can be converted to a
String
or byte[]
.
This property source is typically used to read Kubernetes configMap
volume
mounts.
Modifier and Type | Class and Description |
---|---|
static class |
ConfigTreePropertySource.Option
Property source options.
|
static interface |
ConfigTreePropertySource.Value
A value returned from the property source which exposes the contents of the
property file.
|
PropertySource.StubPropertySource
logger, name, source
Constructor and Description |
---|
ConfigTreePropertySource(String name,
Path sourceDirectory)
Create a new
ConfigTreePropertySource instance. |
ConfigTreePropertySource(String name,
Path sourceDirectory,
ConfigTreePropertySource.Option... options)
Create a new
ConfigTreePropertySource instance. |
Modifier and Type | Method and Description |
---|---|
Origin |
getOrigin(String name)
Return the origin of the given key or
null if the origin cannot be
determined. |
ConfigTreePropertySource.Value |
getProperty(String name) |
String[] |
getPropertyNames() |
boolean |
isImmutable()
Return
true if this lookup is immutable and has contents that will never
change. |
containsProperty
equals, getName, getSource, hashCode, named, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getOrigin, getPrefix
public ConfigTreePropertySource(String name, Path sourceDirectory)
ConfigTreePropertySource
instance.name
- the name of the property sourcesourceDirectory
- the underlying source directorypublic ConfigTreePropertySource(String name, Path sourceDirectory, ConfigTreePropertySource.Option... options)
ConfigTreePropertySource
instance.name
- the name of the property sourcesourceDirectory
- the underlying source directoryoptions
- the property source optionspublic String[] getPropertyNames()
getPropertyNames
in class EnumerablePropertySource<Path>
public ConfigTreePropertySource.Value getProperty(String name)
getProperty
in class PropertySource<Path>
public Origin getOrigin(String name)
OriginLookup
null
if the origin cannot be
determined.getOrigin
in interface OriginLookup<String>
name
- the key to lookupnull
public boolean isImmutable()
OriginLookup
true
if this lookup is immutable and has contents that will never
change.isImmutable
in interface OriginLookup<String>