From 97718593c6a17d7002c745b6eb3bb1b4fbaf51c6 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Wed, 25 Feb 2015 21:01:09 -0500 Subject: [PATCH] Support ConfigMemorySize in fromAnyRef We don't preserve its "memory-size-ness" but we can parse it into a Long. --- .../src/main/java/com/typesafe/config/impl/ConfigImpl.java | 3 +++ .../test/scala/com/typesafe/config/impl/PublicApiTest.scala | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/config/src/main/java/com/typesafe/config/impl/ConfigImpl.java b/config/src/main/java/com/typesafe/config/impl/ConfigImpl.java index 332a754d..1c9cfc85 100644 --- a/config/src/main/java/com/typesafe/config/impl/ConfigImpl.java +++ b/config/src/main/java/com/typesafe/config/impl/ConfigImpl.java @@ -18,6 +18,7 @@ import java.util.concurrent.Callable; import com.typesafe.config.Config; import com.typesafe.config.ConfigException; import com.typesafe.config.ConfigIncluder; +import com.typesafe.config.ConfigMemorySize; import com.typesafe.config.ConfigObject; import com.typesafe.config.ConfigOrigin; import com.typesafe.config.ConfigParseOptions; @@ -273,6 +274,8 @@ public class ConfigImpl { } return new SimpleConfigList(origin, values); + } else if (object instanceof ConfigMemorySize) { + return new ConfigLong(origin, ((ConfigMemorySize) object).toBytes(), null); } else { throw new ConfigException.BugOrBroken( "bug in method caller: not valid to create ConfigValue from: " diff --git a/config/src/test/scala/com/typesafe/config/impl/PublicApiTest.scala b/config/src/test/scala/com/typesafe/config/impl/PublicApiTest.scala index 7c9cd48e..ead13c18 100644 --- a/config/src/test/scala/com/typesafe/config/impl/PublicApiTest.scala +++ b/config/src/test/scala/com/typesafe/config/impl/PublicApiTest.scala @@ -169,6 +169,12 @@ class PublicApiTest extends TestUtils { assertEquals("foo", ConfigValueFactory.fromIterable(treeSet, "foo").origin().description()) } + @Test + def fromConfigMemorySize() { + testFromValue(longValue(1024), ConfigMemorySize.ofBytes(1024)); + testFromValue(longValue(512), ConfigMemorySize.ofBytes(512)); + } + @Test def roundTripUnwrap() { val conf = ConfigFactory.load("test01")