Class Configuration

  • All Implemented Interfaces:
    Root, Block

    public class Configuration
    extends Object
    implements Root
    The Nyx configuration. The configuration is a live object that resolves each option lazily, only when required. This not only improves the overall performances but is also safer as in case of malformed configuration options, only those actually needed are resolved. This means that even if the configuration sources don't change throughout a release process, the state of the configuration may change every time a not yet resolved oprion is requested and evaluated. The configuration is layered, where each layer represents a source of configuration options. There is a clear definition of priorities among different layers so there is a clear precedence of options coming from one layer or another. Thanks to this, each option can be overridden by other layer with higher priority. There must be only one instance of this class for every execution and it's retrieved by Nyx.configuration().
    • Method Detail

      • withPluginConfiguration

        public Configuration withPluginConfiguration​(ConfigurationLayer layer)
                                              throws DataAccessException,
                                                     IllegalPropertyException
        Adds, replaces or removes the layer at the LayerPriority.PLUGIN level.
        Parameters:
        layer - the configuration layer to set at the LayerPriority.PLUGIN level. If null any existing configuration layer at the same level is removed (if any).
        Returns:
        a reference to this same object.
        Throws:
        DataAccessException - in case data cannot be read or accessed.
        IllegalPropertyException - in case some option has been defined but has incorrect values or it can't be resolved.
      • setDefaultDirectory

        public static void setDefaultDirectory​(File directory)
        This method allows to override the default directory that will be returned by getDirectory().
        Parameters:
        directory - the new default directory. If null then the standard default directory will be used.
      • getInitialVersion

        public com.mooltiverse.oss.nyx.version.Version getInitialVersion()
                                                                  throws DataAccessException,
                                                                         IllegalPropertyException
        Returns the initial version defined by this configuration to use when no past version is available in the commit history.
        Specified by:
        getInitialVersion in interface Root
        Returns:
        the configured value for this option or null if the value hasn't been defined.
        Throws:
        DataAccessException - in case the option cannot be read or accessed.
        IllegalPropertyException - in case the option has been defined but has incorrect values or it can't be resolved.
      • getReleaseLenient

        public Boolean getReleaseLenient()
                                  throws DataAccessException,
                                         IllegalPropertyException
        Returns the flag that enables tolerance in reading release names with arbitrary prefixes or extra non critical characters as it's defined by this configuration.
        Specified by:
        getReleaseLenient in interface Root
        Returns:
        the configured value for this option or null if the value hasn't been defined.
        Throws:
        DataAccessException - in case the option cannot be read or accessed.
        IllegalPropertyException - in case the option has been defined but has incorrect values or it can't be resolved.
      • getVerbosity

        public Verbosity getVerbosity()
                               throws DataAccessException,
                                      IllegalPropertyException
        Returns the logging verbosity level as it's defined by this configuration. Please note that the verbosity option is actually ignored in this library implementation as the event filtering based on the verbosity needs to be configured outside this library, depending on the logging framework deployed along with SLF4J. See here for more.
        Specified by:
        getVerbosity in interface Root
        Returns:
        the configured value for this option or null if the value hasn't been defined.
        Throws:
        DataAccessException - in case the option cannot be read or accessed.
        IllegalPropertyException - in case the option has been defined but has incorrect values or it can't be resolved.
      • getVersion

        public com.mooltiverse.oss.nyx.version.Version getVersion()
                                                           throws DataAccessException,
                                                                  IllegalPropertyException
        Returns the version defined by this configuration.
        Specified by:
        getVersion in interface Root
        Returns:
        the configured value for this option or null if the value hasn't been defined.
        Throws:
        DataAccessException - in case the option cannot be read or accessed.
        IllegalPropertyException - in case the option has been defined but has incorrect values or it can't be resolved.