Class Config


  • public class Config
    extends Object
    Provides application Configuration based on loading properties and yaml files as well as plugins that supply properties (like dynamic configuration loaded from a db).

    The application can register onChange listeners to handle changes to configuration properties at runtime. Plugins or code can dynamically load and change properties and this can fire any registered callback handlers.

    • Method Detail

      • asProperties

        public static Properties asProperties()
        Return the loaded properties as standard Properties map.
      • loadIntoSystemProperties

        public static void loadIntoSystemProperties()
        Put all loaded properties into System properties.
      • get

        public static String get​(String key)
        Return a required configuration value as String.

        IllegalStateException is thrown if the value is not defined in configuration.

        Parameters:
        key - The configuration key
        Returns:
        The configured value
      • get

        public static String get​(String key,
                                 String defaultValue)
        Return a configuration string value with a given default.
        Parameters:
        key - The configuration key
        defaultValue - The default value used
        Returns:
        The configured or default value
      • getOptional

        public static Optional<StringgetOptional​(String key)
        Return a configuration value that might not exist.
        Parameters:
        key - The configuration key
        Returns:
        The configured value wrapped as optional
      • getBool

        public static boolean getBool​(String key)
        Return a required boolean configuration value.

        IllegalStateException is thrown if the value is not defined in configuration.

        Parameters:
        key - The configuration key
        Returns:
        The configured value
      • getBool

        public static boolean getBool​(String key,
                                      boolean defaultValue)
        Return a configuration value as boolean given a default value.
        Parameters:
        key - The configuration key
        defaultValue - The default value used
        Returns:
        The configured or default value
      • getInt

        public static int getInt​(String key)
        Return a required int configuration value.

        IllegalStateException is thrown if the value is not defined in configuration.

        Parameters:
        key - The configuration key
        Returns:
        The configured value
      • getInt

        public static int getInt​(String key,
                                 int defaultValue)
        Return a configuration value as int given a default value.
        Parameters:
        key - The configuration key
        defaultValue - The default value used
        Returns:
        The configured or default value
      • getLong

        public static long getLong​(String key)
        Return a required long configuration value.

        IllegalStateException is thrown if the value is not defined in configuration.

        Parameters:
        key - The configuration key
        Returns:
        The configured value
      • getLong

        public static long getLong​(String key,
                                   long defaultValue)
        Return a configuration value as long given a default value.
        Parameters:
        key - The configuration key
        defaultValue - The default value used
        Returns:
        The configured or default value
      • setProperty

        public static void setProperty​(String key,
                                       String value)
        Set a configuration value.

        This will fire an configuration callback listeners that are registered for this key.

      • onChange

        public static void onChange​(String key,
                                    Consumer<String> callback)
        Register a callback for a change to the given configuration key.
        Parameters:
        key - The configuration key we want to detect changes to
        callback - The callback handling to fire when the configuration changes.
      • onChangeInt

        public static void onChangeInt​(String key,
                                       Consumer<Integer> callback)
        Register a callback for a change to the given configuration key as an Int value.
        Parameters:
        key - The configuration key we want to detect changes to
        callback - The callback handling to fire when the configuration changes.
      • onChangeLong

        public static void onChangeLong​(String key,
                                        Consumer<Long> callback)
        Register a callback for a change to the given configuration key as an Long value.
        Parameters:
        key - The configuration key we want to detect changes to
        callback - The callback handling to fire when the configuration changes.
      • onChangeBool

        public static void onChangeBool​(String key,
                                        Consumer<Boolean> callback)
        Register a callback for a change to the given configuration key as an Boolean value.
        Parameters:
        key - The configuration key we want to detect changes to
        callback - The callback handling to fire when the configuration changes.