Class ConfigOverrideUtils


  • public final class ConfigOverrideUtils
    extends java.lang.Object
    Config override handling utils.
    Since:
    30.04.2020
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <C extends io.dropwizard.core.Configuration>
      java.util.function.Function<io.dropwizard.core.Application<C>,​io.dropwizard.core.cli.Command>
      buildCommandFactory​(java.util.List<ConfigModifier<C>> modifiers)
      Create server command function with configuration modifiers support.
      static io.dropwizard.testing.ConfigOverride[] convert​(java.lang.String prefix, java.lang.String... props)  
      static <C extends io.dropwizard.core.Configuration>
      java.util.List<ConfigModifier<C>>
      createModifiers​(java.lang.Class<? extends ConfigModifier<?>>... modifiers)
      Instantiates provided configuration modifiers.
      static java.lang.String createPrefix​(org.junit.jupiter.api.extension.ExtensionContext context)
      Unique prefix is important because config overrides works through system properties and without unique prefix it would be impossible to use parallel tests.
      static java.lang.String formatRestMapping​(java.lang.String restMapping)
      Applies "/*" if not already specified in rest mapping.
      static io.dropwizard.testing.ConfigOverride[] merge​(io.dropwizard.testing.ConfigOverride[] base, io.dropwizard.testing.ConfigOverride... addition)
      Adds config override for existing overrides array.
      static java.lang.String[] mergeRaw​(java.lang.String[] base, java.lang.String... addition)
      Merges config override arrays.
      static io.dropwizard.testing.ConfigOverride overrideRestMapping​(java.lang.String prefix, java.lang.String restMapping)
      Creates config override for rest mapping.
      static io.dropwizard.testing.ConfigOverride[] prepareExtensionOverrides​(io.dropwizard.testing.ConfigOverride[] overrides, org.junit.jupiter.api.extension.ExtensionContext context)
      Process config overrides set by junit extensions.
      static <T extends io.dropwizard.testing.ConfigOverride & ConfigurablePrefix>
      io.dropwizard.testing.ConfigOverride[]
      prepareOverrides​(java.lang.String prefix, java.util.List<T> values)
      Process provided custom config override objects by setting context prefix.
      static <C extends io.dropwizard.core.Configuration>
      void
      runModifiers​(C configuration, java.util.List<ConfigModifier<C>> modifiers)
      Runs configuration modifiers.
      • Methods inherited from class java.lang.Object

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

      • createPrefix

        public static java.lang.String createPrefix​(org.junit.jupiter.api.extension.ExtensionContext context)
        Unique prefix is important because config overrides works through system properties and without unique prefix it would be impossible to use parallel tests.

        Because extension might be used per-method, prefix must follow current test hierarchy (counting nested tests and executed test method).

        Parameters:
        context - test context
        Returns:
        unique properties prefix to use for this test
      • convert

        public static io.dropwizard.testing.ConfigOverride[] convert​(java.lang.String prefix,
                                                                     java.lang.String... props)
        Parameters:
        prefix - prefix
        props - overriding properties in "key: value" format
        Returns:
        parsed configuration override objects
      • mergeRaw

        public static java.lang.String[] mergeRaw​(java.lang.String[] base,
                                                  java.lang.String... addition)
        Merges config override arrays.
        Parameters:
        base - existing overrides (may be null)
        addition - additional overrides (may be empty)
        Returns:
        merged overrides
      • merge

        public static io.dropwizard.testing.ConfigOverride[] merge​(io.dropwizard.testing.ConfigOverride[] base,
                                                                   io.dropwizard.testing.ConfigOverride... addition)
        Adds config override for existing overrides array.
        Parameters:
        base - existing overrides (may be null)
        addition - additional overrides (may be empty)
        Returns:
        merged overrides
      • prepareOverrides

        public static <T extends io.dropwizard.testing.ConfigOverride & ConfigurablePrefix> io.dropwizard.testing.ConfigOverride[] prepareOverrides​(java.lang.String prefix,
                                                                                                                                                    java.util.List<T> values)
        Process provided custom config override objects by setting context prefix.
        Type Parameters:
        T - composite helper type
        Parameters:
        prefix - test specific prefix
        values - objects to process
        Returns:
        array of processed objects or null if nothing registered
      • prepareExtensionOverrides

        public static io.dropwizard.testing.ConfigOverride[] prepareExtensionOverrides​(io.dropwizard.testing.ConfigOverride[] overrides,
                                                                                       org.junit.jupiter.api.extension.ExtensionContext context)
        Process config overrides set by junit extensions.
        Parameters:
        overrides - array of all configured config overrides
        context - extension contest to resolve storage from
        Returns:
        same array
      • formatRestMapping

        public static java.lang.String formatRestMapping​(java.lang.String restMapping)
        Applies "/*" if not already specified in rest mapping.
        Parameters:
        restMapping - user-declared rest mapping string
        Returns:
        formatted rest mapping (for using in configuration)
      • overrideRestMapping

        public static io.dropwizard.testing.ConfigOverride overrideRestMapping​(@Nullable
                                                                               java.lang.String prefix,
                                                                               java.lang.String restMapping)
        Creates config override for rest mapping. Declared mapping if automatically "fixed" to comply with required format.
        Parameters:
        prefix - configuration override prefixes (may be null to use default prefix)
        restMapping - rest mapping to configure
        Returns:
        config override object
      • createModifiers

        @SafeVarargs
        public static <C extends io.dropwizard.core.Configuration> java.util.List<ConfigModifier<C>> createModifiers​(java.lang.Class<? extends ConfigModifier<?>>... modifiers)
        Instantiates provided configuration modifiers.
        Type Parameters:
        C - configuration type
        Parameters:
        modifiers - configuration modifiers to instantiate
        Returns:
        hooks instances
      • runModifiers

        public static <C extends io.dropwizard.core.Configuration> void runModifiers​(C configuration,
                                                                                     java.util.List<ConfigModifier<C>> modifiers)
        Runs configuration modifiers.
        Type Parameters:
        C - configuration type
        Parameters:
        configuration - configuration instance
        modifiers - configuration modifiers
        Throws:
        java.lang.IllegalStateException - if modifier fails to execute
      • buildCommandFactory

        public static <C extends io.dropwizard.core.Configuration> java.util.function.Function<io.dropwizard.core.Application<C>,​io.dropwizard.core.cli.Command> buildCommandFactory​(java.util.List<ConfigModifier<C>> modifiers)
        Create server command function with configuration modifiers support.
        Type Parameters:
        C - configuration type (required to align input)
        Parameters:
        modifiers - configuration modifiers
        Returns:
        server command function with configuration modifiers support.