Class JsonSource

  • All Implemented Interfaces:
    ConfigSource

    public class JsonSource
    extends AbstractFileConfigSource<JsonObject>
    Configuration source that reads from JSON files.

    This source loads configuration from JSON files using Gson 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

      • JsonSource

        public JsonSource​(String filePath)
        Creates a new JsonSource 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 JSON file (filesystem or classpath)
        Throws:
        IllegalStateException - if the file cannot be loaded
      • JsonSource

        public JsonSource​(String filePath,
                          String environment)
        Creates a new JsonSource 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 JSON 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
      • JsonSource

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

        public JsonSource​(Path file,
                          String environment)
        Creates a new JsonSource 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 JSON 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