Class YamlMpConfigSource

  • All Implemented Interfaces:
    org.eclipse.microprofile.config.spi.ConfigSource

    public class YamlMpConfigSource
    extends Object
    implements org.eclipse.microprofile.config.spi.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 Detail

      • create

        public static org.eclipse.microprofile.config.spi.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 org.eclipse.microprofile.config.spi.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 org.eclipse.microprofile.config.spi.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
      • getProperties

        public Map<String,​String> getProperties()
        Specified by:
        getProperties in interface org.eclipse.microprofile.config.spi.ConfigSource
      • getValue

        public String getValue​(String propertyName)
        Specified by:
        getValue in interface org.eclipse.microprofile.config.spi.ConfigSource
      • getName

        public String getName()
        Specified by:
        getName in interface org.eclipse.microprofile.config.spi.ConfigSource