Class YamlMpConfigSource

java.lang.Object
io.helidon.config.yaml.mp.YamlMpConfigSource
All Implemented Interfaces:
ConfigSource

public class YamlMpConfigSource extends Object implements ConfigSource
MicroProfile ConfigSource that can be used to add YAML files from classpath or file system using the ConfigProviderResolver.getBuilder().

The YAML file is transformed to a flat map as follows:

Object nodes

Each 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
 
  • Method Details

    • 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

      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 source
      content - 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 null
      classLoader - 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 interface ConfigSource
    • getProperties

      public Map<String,String> getProperties()
      Specified by:
      getProperties in interface ConfigSource
    • getValue

      public String getValue(String propertyName)
      Specified by:
      getValue in interface ConfigSource
    • getName

      public String getName()
      Specified by:
      getName in interface ConfigSource