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/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/cd60ff7b Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/cd60ff7b Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/cd60ff7b Branch: refs/heads/master Commit: cd60ff7b8d6ba28d888d7acf93c4b85ba2abcd7d Parents: ff3f314 Author: Anatole Tresch <anat...@apache.org> Authored: Thu Oct 29 12:40:27 2015 +0100 Committer: Anatole Tresch <anat...@apache.org> Committed: Thu Oct 29 12:40:27 2015 +0100 ---------------------------------------------------------------------- .../java/org/apache/tamaya/events/FrozenConfiguration.java | 7 +++++-- .../test/java/org/apache/tamaya/events/TestConfigView.java | 9 ++++++--- .../apache/tamaya/inject/internal/DefaultDynamicValue.java | 1 - .../org/apache/tamaya/spisupport/DefaultConfiguration.java | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/cd60ff7b/modules/events/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/events/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java b/modules/events/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java index 14c9b30..313f569 100644 --- a/modules/events/src/main/java/org/apache/tamaya/events/FrozenConfiguration.java +++ b/modules/events/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/blob/cd60ff7b/modules/events/src/test/java/org/apache/tamaya/events/TestConfigView.java ---------------------------------------------------------------------- diff --git a/modules/events/src/test/java/org/apache/tamaya/events/TestConfigView.java b/modules/events/src/test/java/org/apache/tamaya/events/TestConfigView.java index 379f660..4f2227a 100644 --- a/modules/events/src/test/java/org/apache/tamaya/events/TestConfigView.java +++ b/modules/events/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; } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/cd60ff7b/modules/injection/src/main/java/org/apache/tamaya/inject/internal/DefaultDynamicValue.java ---------------------------------------------------------------------- diff --git a/modules/injection/src/main/java/org/apache/tamaya/inject/internal/DefaultDynamicValue.java b/modules/injection/src/main/java/org/apache/tamaya/inject/internal/DefaultDynamicValue.java index f9212a4..bcfc831 100644 --- a/modules/injection/src/main/java/org/apache/tamaya/inject/internal/DefaultDynamicValue.java +++ b/modules/injection/src/main/java/org/apache/tamaya/inject/internal/DefaultDynamicValue.java @@ -27,7 +27,6 @@ import org.apache.tamaya.inject.api.InjectionUtils; import org.apache.tamaya.inject.api.LoadPolicy; import org.apache.tamaya.inject.api.UpdatePolicy; import org.apache.tamaya.inject.api.WithPropertyConverter; -import org.apache.tamaya.spi.ConfigurationContext; import org.apache.tamaya.spi.ConversionContext; import org.apache.tamaya.spi.PropertyConverter; http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/cd60ff7b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java index 5a8abcd..a72dc36 100644 --- a/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java +++ b/modules/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java @@ -177,7 +177,7 @@ public class DefaultConfiguration implements Configuration { protected <T> T convertValue(String key, String value, TypeLiteral<T> type) { if (value != null) { List<PropertyConverter<T>> converters = configurationContext.getPropertyConverters(type); - ConversionContext context = new ConversionContext.Builder(this, key).setTargetType(type).build(); + ConversionContext context = new ConversionContext.Builder(this, key, type).build(); for (PropertyConverter<T> converter : converters) { try { T t = converter.convert(value, context);