Class YamlSource

  • All Implemented Interfaces:
    ConfigSource

    public class YamlSource
    extends AbstractFileConfigSource<Map<String,​Object>>
    Configuration source that reads from YAML files.

    This source loads configuration from YAML files using SnakeYAML for parsing. Supports both primitive values and nested objects.

    Supports environment-specific configuration sections. When an environment is specified, only configuration from that section is loaded. For example:

     uat:
       database:
         host: uat-db.example.com
       api:
         url: https://uat-api.example.com
    
     prod:
       database:
         host: prod-db.example.com
       api:
         url: https://prod-api.example.com
     
    Since:
    1.0
    Author:
    Bharat Kumar Malviya, GitHub: github.com/imBharatMalviya
    See Also:
    ConfigSource, AbstractFileConfigSource
    • Constructor Detail

      • YamlSource

        public YamlSource​(String filePath)
        Creates a new YamlSource from the given file path (supports both filesystem and classpath). Loads all top-level keys (not nested in environment sections).
        Parameters:
        filePath - path to the YAML file (filesystem or classpath)
        Throws:
        IllegalStateException - if the file cannot be loaded
      • YamlSource

        public YamlSource​(Path file)
        Creates a new YamlSource from the given file. Loads all top-level keys (not nested in environment sections).
        Parameters:
        file - path to the YAML file
        Throws:
        IllegalStateException - if the file cannot be loaded
      • YamlSource

        public YamlSource​(String filePath,
                          String environment)
        Creates a new YamlSource from the given file path for a specific environment (supports both filesystem and classpath). When an environment is specified, only configuration from that section is loaded.
        Parameters:
        filePath - path to the YAML file (filesystem or classpath)
        environment - the environment section to load (e.g., "uat", "prod"), or null for all top-level keys
        Throws:
        IllegalStateException - if the file cannot be loaded or the environment section doesn't exist
      • YamlSource

        public YamlSource​(Path file,
                          String environment)
        Creates a new YamlSource from the given file for a specific environment. When an environment is specified, only configuration from that section is loaded.
        Parameters:
        file - path to the YAML file
        environment - the environment section to load (e.g., "env1", "env2"), or null for all top-level keys
        Throws:
        IllegalStateException - if the file cannot be loaded or the environment section doesn't exist