Package io.confound

Class Confound


  • public class Confound
    extends java.lang.Object
    The Configuration Foundation (Confound) library provides a lightweight yet powerful model for accessing various types of application configuration facilities via Csar.

    More complex configurations may be set up using setDefaultConfigurationConcern(ConfigurationConcern) with the concern of choice, as in the following example:

     
     Confound.setDefaultConfigurationConcern(new MyConfigurationConcern());
     
     
    Author:
    Garret Wilson
    See Also:
    Csar
    • Constructor Summary

      Constructors 
      Constructor Description
      Confound()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static io.confound.config.Configuration getConfiguration()
      Retrieves the configured configuration.
      static ConfigurationConcern getConfigurationConcern()
      Returns the configured configuration concern.
      static java.util.Optional<ConfigurationConcern> getDefaultConfigurationConcern()
      Returns the default configuration concern.
      static io.confound.config.Configuration getEnvironmentConfiguration()
      Retrieves a configuration based on environment variables.
      static io.confound.config.Configuration getEnvironmentConfiguration​(io.confound.config.Configuration fallbackfiguration)
      Retrieves a configuration based on environment variables, with an optional fallback parent configuration.
      static io.confound.config.Configuration getSystemConfiguration()
      Retrieves a configuration for the system, representing system properties that fall back to environment variables.
      static io.confound.config.Configuration getSystemConfiguration​(io.confound.config.Configuration fallbackConfiguration)
      Retrieves a configuration for the system, representing system properties that fall back to environment variables, with an optional fallback parent configuration.
      static io.confound.config.Configuration getSystemPropertiesConfiguration()
      Retrieves a configuration based on the system properties.
      static void setDefaultConfiguration​(io.confound.config.Configuration configuration)
      Sets a configuration as the default by installing it in a default configuration concern.
      static java.util.Optional<ConfigurationConcern> setDefaultConfigurationConcern​(ConfigurationConcern configurationConcern)
      Sets the default configuration concern.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Confound

        public Confound()
    • Method Detail

      • getSystemPropertiesConfiguration

        public static io.confound.config.Configuration getSystemPropertiesConfiguration()
        Retrieves a configuration based on the system properties.
        Returns:
        Configuration based on system properties.
        Throws:
        java.lang.SecurityException - If a security manager exists and it doesn't allow access to the system properties.
        See Also:
        System.getProperties()
      • getEnvironmentConfiguration

        public static io.confound.config.Configuration getEnvironmentConfiguration()
        Retrieves a configuration based on environment variables.
        Returns:
        Configuration based on environment variables.
        Throws:
        java.lang.SecurityException - If a security manager exists and it doesn't allow access to environment variables.
        See Also:
        System.getenv()
      • getEnvironmentConfiguration

        public static io.confound.config.Configuration getEnvironmentConfiguration​(@Nullable
                                                                                   io.confound.config.Configuration fallbackfiguration)
        Retrieves a configuration based on environment variables, with an optional fallback parent configuration.
        Parameters:
        fallbackfiguration - The parent configuration to use for fallback lookup, or null if there is no parent configuration.
        Returns:
        Configuration based on environment variables.
        Throws:
        java.lang.SecurityException - If a security manager exists and it doesn't allow access to environment variables.
        See Also:
        System.getenv()
      • getSystemConfiguration

        public static io.confound.config.Configuration getSystemConfiguration()
        Retrieves a configuration for the system, representing system properties that fall back to environment variables. That is the returned configuration recognizes both environment variables and system properties, with system properties taking precedent. Keys are normalized to match environment variable conventions, so that a request for foo.bar will match a system property named foo.bar or, if none exists, an environment variable named FOO_BAR.
        Returns:
        A configuration for system properties and environment variables.
        See Also:
        System.getProperties(), System.getenv()
      • getSystemConfiguration

        public static io.confound.config.Configuration getSystemConfiguration​(@Nullable
                                                                              io.confound.config.Configuration fallbackConfiguration)
        Retrieves a configuration for the system, representing system properties that fall back to environment variables, with an optional fallback parent configuration. That is the returned configuration recognizes both environment variables and system properties, with system properties taking precedent. Keys are normalized to match environment variable conventions, so that a request for foo.bar will match a system property named foo.bar or, if none exists, an environment variable named FOO_BAR.
        Parameters:
        fallbackConfiguration - The parent configuration to use for fallback lookup, or null if there is no parent configuration.
        Returns:
        A configuration for system properties and environment variables.
        See Also:
        System.getProperties(), System.getenv()
      • getDefaultConfigurationConcern

        public static java.util.Optional<ConfigurationConcern> getDefaultConfigurationConcern()
        Returns the default configuration concern.
        Returns:
        The default configuration concern.
        See Also:
        Csar.findDefaultConcern(Class)
      • setDefaultConfigurationConcern

        public static java.util.Optional<ConfigurationConcern> setDefaultConfigurationConcern​(@Nonnull
                                                                                              ConfigurationConcern configurationConcern)
        Sets the default configuration concern.
        Parameters:
        configurationConcern - The default configuration concern to set.
        Returns:
        The previous concern, or null if there was no previous concern.
        Throws:
        java.lang.NullPointerException - if the given concern is null.
        See Also:
        Csar.registerDefaultConcern(Class, Concern)
      • setDefaultConfiguration

        public static void setDefaultConfiguration​(@Nonnull
                                                   io.confound.config.Configuration configuration)
        Sets a configuration as the default by installing it in a default configuration concern.
        Parameters:
        configuration - The default configuration to set.
        Throws:
        java.lang.NullPointerException - if the given configuration is null.
        See Also:
        DefaultConfigurationConcern, setDefaultConfigurationConcern(ConfigurationConcern)
      • getConfigurationConcern

        @Nonnull
        public static ConfigurationConcern getConfigurationConcern()
        Returns the configured configuration concern.

        If no configuration concern is configured, and no default configuration concern is registered, a configuration concern will be returned that provides access to the system properties with fallback to environment variables.

        Returns:
        The configured configuration concern.
        See Also:
        Csar.getConcern(Class), getSystemConfiguration()
      • getConfiguration

        @Nonnull
        public static io.confound.config.Configuration getConfiguration()
                                                                 throws io.confound.config.ConfigurationException
        Retrieves the configured configuration.

        This is a convenience method that requests the configuration from the current configuration concern.

        Returns:
        Access to configured configuration.
        Throws:
        io.confound.config.ConfigurationException - if there is a configuration error.
        See Also:
        getConfigurationConcern(), ConfigurationConcern.getConfiguration()