TAMAYA-128: Added ConversionContext for supporting more complex conversion cases, adapted evaluation of conversion.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/commit/4b183ab9 Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/4b183ab9 Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/4b183ab9 Branch: refs/heads/master Commit: 4b183ab9a1b2315ddc6fa099fac19cd8a31f2b19 Parents: 344ad78 Author: Anatole Tresch <anat...@apache.org> Authored: Thu Oct 29 12:40:27 2015 +0100 Committer: Oliver B. Fischer <ple...@apache.org> Committed: Tue Sep 27 00:18:31 2016 +0200 ---------------------------------------------------------------------- .../java/org/apache/tamaya/events/FrozenConfiguration.java | 7 +++++-- src/test/java/org/apache/tamaya/events/TestConfigView.java | 9 ++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/4b183ab9/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java b/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java index 14c9b30..313f569 100644 --- a/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java +++ b/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java @@ -24,6 +24,7 @@ import org.apache.tamaya.ConfigQuery; import org.apache.tamaya.Configuration; import org.apache.tamaya.ConfigurationProvider; import org.apache.tamaya.TypeLiteral; +import org.apache.tamaya.spi.ConversionContext; import org.apache.tamaya.spi.PropertyConverter; import java.io.Serializable; @@ -115,9 +116,10 @@ public final class FrozenConfiguration implements Configuration, Serializable { if (value != null) { List<PropertyConverter<T>> converters = ConfigurationProvider.getConfigurationContext() .getPropertyConverters(type); + ConversionContext context = new ConversionContext.Builder(this,key,type).build(); for (PropertyConverter<T> converter : converters) { try { - T t = converter.convert(value); + T t = converter.convert(value, context); if (t != null) { return t; } @@ -127,7 +129,8 @@ public final class FrozenConfiguration implements Configuration, Serializable { e); } } - throw new ConfigException("Unparseable config value for type: " + type.getRawType().getName() + ": " + key); + throw new ConfigException("Unparseable config value for type: " + type.getRawType().getName() + ": " + key + + ", supported formats: " + context.getSupportedFormats()); } return null; http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/4b183ab9/src/test/java/org/apache/tamaya/events/TestConfigView.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/tamaya/events/TestConfigView.java b/src/test/java/org/apache/tamaya/events/TestConfigView.java index 379f660..4f2227a 100644 --- a/src/test/java/org/apache/tamaya/events/TestConfigView.java +++ b/src/test/java/org/apache/tamaya/events/TestConfigView.java @@ -24,6 +24,7 @@ import org.apache.tamaya.ConfigQuery; import org.apache.tamaya.Configuration; import org.apache.tamaya.ConfigurationProvider; import org.apache.tamaya.TypeLiteral; +import org.apache.tamaya.spi.ConversionContext; import org.apache.tamaya.spi.PropertyConverter; import java.util.HashMap; @@ -31,7 +32,6 @@ import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.stream.Collectors; /** * Created by Anatole on 24.03.2015. @@ -117,9 +117,11 @@ public class TestConfigView implements ConfigOperator{ if (value != null) { List<PropertyConverter<T>> converters = ConfigurationProvider.getConfigurationContext() .getPropertyConverters(type); + ConversionContext context = new ConversionContext.Builder( + key,type).build(); for (PropertyConverter<T> converter : converters) { try { - T t = converter.convert(value); + T t = converter.convert(value, context); if (t != null) { return t; } @@ -129,7 +131,8 @@ public class TestConfigView implements ConfigOperator{ + value, e); } } - throw new ConfigException("Unparseable config value for type: " + type.getRawType().getName() + ": " + key); + throw new ConfigException("Unparseable config value for type: " + type.getRawType().getName() + ": " + + key + ", supportedFormats: " + context.getSupportedFormats()); } return null; }