Class ConfigOverrideUtils

java.lang.Object
ru.vyarus.dropwizard.guice.test.util.ConfigOverrideUtils

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

    Modifier and Type
    Method
    Description
    static <C extends io.dropwizard.core.Configuration>
    Function<io.dropwizard.core.Application<C>,io.dropwizard.core.cli.Command>
    Create server command function with configuration modifiers support.
    static io.dropwizard.testing.ConfigOverride[]
    convert(String prefix, String... props)
     
    static <C extends io.dropwizard.core.Configuration>
    List<ConfigModifier<C>>
    createModifiers(Class<? extends ConfigModifier<?>>... modifiers)
    Instantiates provided configuration modifiers.
    static 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 String
    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 String[]
    mergeRaw(String[] base, String... addition)
    Merges config override arrays.
    static io.dropwizard.testing.ConfigOverride
    overrideRestMapping(String prefix, 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(String prefix, List<T> values)
    Process provided custom config override objects by setting context prefix.
    static <C extends io.dropwizard.core.Configuration>
    void
    runModifiers(C configuration, 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 Details

    • createPrefix

      public static 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(String prefix, String... props)
      Parameters:
      prefix - prefix
      props - overriding properties in "key: value" format
      Returns:
      parsed configuration override objects
    • mergeRaw

      public static String[] mergeRaw(String[] base, 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(String prefix, 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 String formatRestMapping(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 String prefix, 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> List<ConfigModifier<C>> createModifiers(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, List<ConfigModifier<C>> modifiers)
      Runs configuration modifiers.
      Type Parameters:
      C - configuration type
      Parameters:
      configuration - configuration instance
      modifiers - configuration modifiers
      Throws:
      IllegalStateException - if modifier fails to execute
    • buildCommandFactory

      public static <C extends io.dropwizard.core.Configuration> Function<io.dropwizard.core.Application<C>,io.dropwizard.core.cli.Command> buildCommandFactory(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.