Class ConfigOverrideUtils
- java.lang.Object
-
- ru.vyarus.dropwizard.guice.test.util.ConfigOverrideUtils
-
public final class ConfigOverrideUtils extends java.lang.ObjectConfig 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.StringcreatePrefix(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.StringformatRestMapping(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.ConfigOverrideoverrideRestMapping(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>
voidrunModifiers(C configuration, java.util.List<ConfigModifier<C>> modifiers)Runs configuration modifiers.
-
-
-
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- prefixprops- 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 prefixvalues- 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 overridescontext- 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 instancemodifiers- 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.
-
-