diff --git a/redisson/src/main/java/org/redisson/config/ConfigSupport.java b/redisson/src/main/java/org/redisson/config/ConfigSupport.java index 051531266..b1304e551 100644 --- a/redisson/src/main/java/org/redisson/config/ConfigSupport.java +++ b/redisson/src/main/java/org/redisson/config/ConfigSupport.java @@ -62,16 +62,6 @@ import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; */ public class ConfigSupport { - private final EnvProvider env; - - public ConfigSupport() { - this(new SystemEnvProvider()); - } - - public ConfigSupport(EnvProvider env) { - this.env = env; - } - @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "class") @JsonFilter("classFilter") public static class ClassMixIn { @@ -150,7 +140,7 @@ public class ConfigSupport { Matcher m = pattern.matcher(content); while (m.find()) { String[] parts = m.group(1).split(":-"); - String v = env.get(parts[0]); + String v = System.getenv(parts[0]); if (v != null) { content = content.replace(m.group(), v); } else if (parts.length == 2) { diff --git a/redisson/src/main/java/org/redisson/config/EnvProvider.java b/redisson/src/main/java/org/redisson/config/EnvProvider.java deleted file mode 100644 index 493a7f030..000000000 --- a/redisson/src/main/java/org/redisson/config/EnvProvider.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.redisson.config; - -/** - * Adaptor for key value storage, a.k.a. Environment. - */ -@FunctionalInterface -interface EnvProvider { - - /** - * Gets the value of the specified environment variable. An - * environment variable is a system-dependent external named - * value. - * - * @param name the name of the environment variable - * @return the string value of the variable, or null - * if the variable is not defined in the system environment - */ - String get(String name); - -} diff --git a/redisson/src/main/java/org/redisson/config/SystemEnvProvider.java b/redisson/src/main/java/org/redisson/config/SystemEnvProvider.java deleted file mode 100644 index 89364992a..000000000 --- a/redisson/src/main/java/org/redisson/config/SystemEnvProvider.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.redisson.config; - -/** - * Default implementation for environment values adaptor. - */ -public class SystemEnvProvider implements EnvProvider { - - /** - * @see System#getenv() - */ - @Override - public String get(String name) { - return System.getenv(name); - } - -} diff --git a/redisson/src/test/java/org/redisson/config/ConfigSupportTest.java b/redisson/src/test/java/org/redisson/config/ConfigSupportTest.java index 525e2b4b6..1a2aa8ac9 100644 --- a/redisson/src/test/java/org/redisson/config/ConfigSupportTest.java +++ b/redisson/src/test/java/org/redisson/config/ConfigSupportTest.java @@ -1,12 +1,12 @@ package org.redisson.config; import com.fasterxml.jackson.databind.exc.InvalidFormatException; +import mockit.Mock; +import mockit.MockUp; import org.junit.Test; import java.io.IOException; import java.net.URI; -import java.util.HashMap; -import java.util.Map; import static org.junit.Assert.*; @@ -14,46 +14,54 @@ public class ConfigSupportTest { @Test public void testParsingLiteral() throws IOException { - SingleServerConfig config = mkConfig("127.0.0.1", new HashMap() {{ - put("REDIS_URI", "1.1.1.1"); - }}); + mockHostEnv("1.1.1.1"); + SingleServerConfig config = mkConfig("127.0.0.1"); assertEquals(URI.create("redis://127.0.0.1"), config.getAddress()); } @Test public void testParsingEnv() throws IOException { - SingleServerConfig config = mkConfig("${REDIS_URI}", new HashMap() {{ - put("REDIS_URI", "1.1.1.1"); - }}); + mockHostEnv("1.1.1.1"); + SingleServerConfig config = mkConfig("${REDIS_URI}"); assertEquals(URI.create("redis://1.1.1.1"), config.getAddress()); } @Test(expected = InvalidFormatException.class) public void testParsingEnv_envMissing() throws IOException { - mkConfig("${REDIS_URI}", new HashMap<>()); + mockHostEnv(null); + mkConfig("${REDIS_URI}"); } @Test public void testParsingDefault_envPresent() throws IOException { - SingleServerConfig config = mkConfig("${REDIS_URI:-10.0.0.1}", new HashMap() {{ - put("REDIS_URI", "11.0.0.1"); - }}); + mockHostEnv("11.0.0.1"); + SingleServerConfig config = mkConfig("${REDIS_URI:-10.0.0.1}"); assertEquals(URI.create("redis://11.0.0.1"), config.getAddress()); } @Test public void testParsingDefault_envMissing() throws IOException { - SingleServerConfig config = mkConfig("${REDIS_URI:-10.0.0.1}", new HashMap<>()); + mockHostEnv(null); + SingleServerConfig config = mkConfig("${REDIS_URI:-10.0.0.1}"); assertEquals(URI.create("redis://10.0.0.1"), config.getAddress()); } - private SingleServerConfig mkConfig(String authorityValue, Map env) throws IOException { + private SingleServerConfig mkConfig(String authorityValue) throws IOException { String config = "singleServerConfig:\n address: redis://" + authorityValue; - return new ConfigSupport(env::get).fromYAML(config, Config.class).getSingleServerConfig(); + return new ConfigSupport().fromYAML(config, Config.class).getSingleServerConfig(); + } + + private void mockHostEnv(String value) { + new MockUp() { + @Mock + String getenv(String name) { + return value; + } + }; } }