- java.lang.Object
-
- io.helidon.config.yaml.mp.YamlMpConfigSource
-
- All Implemented Interfaces:
ConfigSource
public class YamlMpConfigSource extends Object implements ConfigSource
MicroProfileConfigSource
that can be used to add YAML files from classpath or file system using theConfigProviderResolver.getBuilder()
.The YAML file is transformed to a flat map as follows:
Object nodesEach node in the tree is dot separated.
server: host: "localhost" port: 8080
Will be transformed to the following properties:server.host=localhost server.port=8080
List nodes (arrays)Each node will be indexed (0 based)
providers: - abac: enabled: true names: ["first", "second", "third"]
Will be transformed to the following properties:providers.0.abac.enabled=true names.0=first names.1=second names.2=third
-
-
Field Summary
-
Fields inherited from interface org.eclipse.microprofile.config.spi.ConfigSource
CONFIG_ORDINAL, DEFAULT_ORDINAL
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static List<ConfigSource>
classPath(String resource)
Create from YAML file(s) on classpath.static List<ConfigSource>
classPath(String resource, String profile)
Create from YAML file(s) on classpath with profile support.static List<ConfigSource>
classPath(String resource, String profile, ClassLoader classLoader)
Create from YAML file(s) on classpath from specified classloader with profile support.static ConfigSource
create(String name, Reader content)
Create from YAML content as a reader.static ConfigSource
create(URL url)
Load a YAML config source from URL.static ConfigSource
create(Path path)
Load a YAML config source from file system.String
getName()
Map<String,String>
getProperties()
Set<String>
getPropertyNames()
String
getValue(String propertyName)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.microprofile.config.spi.ConfigSource
getOrdinal
-
-
-
-
Method Detail
-
create
public static ConfigSource create(Path path)
Load a YAML config source from file system.- Parameters:
path
- path to the YAML file- Returns:
- config source loaded from the file
- See Also:
create(java.net.URL)
-
create
public static ConfigSource create(URL url)
Load a YAML config source from URL. The URL may be any URL which is support by the used JVM.- Parameters:
url
- url of the resource- Returns:
- config source loaded from the URL
-
create
public static ConfigSource create(String name, Reader content)
Create from YAML content as a reader. This method will NOT close the reader.- Parameters:
name
- name of the config sourcecontent
- reader with the YAML content- Returns:
- config source loaded from the content
-
classPath
public static List<ConfigSource> classPath(String resource)
Create from YAML file(s) on classpath.- Parameters:
resource
- resource name to locate on classpath (looks for all instances)- Returns:
- list of config sources discovered (may be zero length)
-
classPath
public static List<ConfigSource> classPath(String resource, String profile)
Create from YAML file(s) on classpath with profile support.- Parameters:
resource
- resource name to locate on classpath (looks for all instances)profile
- configuration profile to use, must not be null- Returns:
- list of config sources discovered (may be zero length)
-
classPath
public static List<ConfigSource> classPath(String resource, String profile, ClassLoader classLoader)
Create from YAML file(s) on classpath from specified classloader with profile support.- Parameters:
resource
- resource name to locate on classpath (looks for all instances)profile
- configuration profile to use, must not be nullclassLoader
- classloader where resource will be retrieved from- Returns:
- list of config sources discovered (may be zero length)
-
getPropertyNames
public Set<String> getPropertyNames()
- Specified by:
getPropertyNames
in interfaceConfigSource
-
getProperties
public Map<String,String> getProperties()
- Specified by:
getProperties
in interfaceConfigSource
-
getValue
public String getValue(String propertyName)
- Specified by:
getValue
in interfaceConfigSource
-
getName
public String getName()
- Specified by:
getName
in interfaceConfigSource
-
-