Class DefaultConfigurationLoader

java.lang.Object
dev.agenor.runtime.config.DefaultConfigurationLoader
All Implemented Interfaces:
ConfigurationLoader

public class DefaultConfigurationLoader extends Object implements ConfigurationLoader
Default implementation of ConfigurationLoader. Loads Agenor configuration from YAML, JSON, or classpath resources. Supports environment variable substitution via ${VAR_NAME} and ${VAR_NAME:default} syntax.
  • Constructor Details

    • DefaultConfigurationLoader

      public DefaultConfigurationLoader()
  • Method Details

    • loadFromFile

      public AgenorConfiguration loadFromFile(String path)
      Description copied from interface: ConfigurationLoader
      Loads configuration from a file on the filesystem. Supports YAML (.yml, .yaml) and JSON (.json) formats. Environment variable substitution (${VAR} and ${VAR:default}) is applied.
      Specified by:
      loadFromFile in interface ConfigurationLoader
      Parameters:
      path - absolute or relative path to the configuration file, not null or empty
      Returns:
      the loaded configuration
    • loadFromClasspath

      public AgenorConfiguration loadFromClasspath(String resourcePath)
      Description copied from interface: ConfigurationLoader
      Loads configuration from a classpath resource. Supports YAML (.yml, .yaml) and JSON (.json) formats. Environment variable substitution (${VAR} and ${VAR:default}) is applied.
      Specified by:
      loadFromClasspath in interface ConfigurationLoader
      Parameters:
      resourcePath - classpath-relative path to the resource, not null or empty
      Returns:
      the loaded configuration
    • loadFromStream

      public AgenorConfiguration loadFromStream(InputStream inputStream, String format)
      Description copied from interface: ConfigurationLoader
      Loads configuration from an InputStream. Environment variable substitution (${VAR} and ${VAR:default}) is applied.
      Specified by:
      loadFromStream in interface ConfigurationLoader
      Parameters:
      inputStream - the stream to read from, not null
      format - the format hint: "json" for JSON, anything else defaults to YAML
      Returns:
      the loaded configuration
    • loadDefault

      public AgenorConfiguration loadDefault()
      Description copied from interface: ConfigurationLoader
      Loads configuration using the default lookup strategy:
      1. agenor.yml in the working directory
      2. agenor.yml on the classpath
      3. Built-in defaults via AgenorConfiguration.defaults()
      Specified by:
      loadDefault in interface ConfigurationLoader
      Returns:
      the loaded configuration, never null
    • validate

      public void validate(AgenorConfiguration config)
      Description copied from interface: ConfigurationLoader
      Validates the given configuration, checking for required fields and well-formed values. Logs warnings for non-critical issues (e.g. unknown environment name, missing scan packages).
      Specified by:
      validate in interface ConfigurationLoader
      Parameters:
      config - the configuration to validate, not null