TAMAYA-355 Enable mapping of lists and arrays into internal datastructures, reestablished conversion/filter context (backward compatible).
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/bd9901b0 Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/bd9901b0 Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/bd9901b0 Branch: refs/heads/master Commit: bd9901b09edc043d6664b3bcf01721666d6db8bc Parents: 67ffcbf Author: Anatole Tresch <[email protected]> Authored: Sat Nov 3 21:27:55 2018 +0100 Committer: Anatole Tresch <[email protected]> Committed: Sat Nov 3 21:27:55 2018 +0100 ---------------------------------------------------------------------- .../apache/tamaya/spi/ConversionContext.java | 37 +--------- .../org/apache/tamaya/spi/FilterContext.java | 36 --------- .../apache/tamaya/spi/PropertyConverter.java | 9 ++- .../org/apache/tamaya/spi/PropertyFilter.java | 7 +- .../tamaya/spi/ConversionContextTest.java | 2 +- .../apache/tamaya/spi/FilterContextTest.java | 48 ++++++------ .../converters/BigDecimalConverter.java | 7 +- .../converters/BigIntegerConverter.java | 5 +- .../internal/converters/BooleanConverter.java | 7 +- .../core/internal/converters/ByteConverter.java | 5 +- .../core/internal/converters/CharConverter.java | 5 +- .../internal/converters/ClassConverter.java | 5 +- .../core/internal/converters/ConvertQuery.java | 25 +++---- .../internal/converters/CurrencyConverter.java | 6 +- .../internal/converters/DoubleConverter.java | 8 +- .../internal/converters/DurationConverter.java | 7 +- .../core/internal/converters/FileConverter.java | 5 +- .../internal/converters/FloatConverter.java | 9 +-- .../internal/converters/InstantConverter.java | 5 +- .../internal/converters/IntegerConverter.java | 5 +- .../internal/converters/LocalDateConverter.java | 5 +- .../converters/LocalDateTimeConverter.java | 5 +- .../internal/converters/LocalTimeConverter.java | 5 +- .../core/internal/converters/LongConverter.java | 5 +- .../internal/converters/NumberConverter.java | 9 +-- .../converters/OffsetDateTimeConverter.java | 5 +- .../converters/OffsetTimeConverter.java | 5 +- .../internal/converters/OptionalConverter.java | 10 +-- .../core/internal/converters/PathConverter.java | 5 +- .../internal/converters/ShortConverter.java | 5 +- .../internal/converters/SupplierConverter.java | 6 +- .../core/internal/converters/URIConverter.java | 5 +- .../core/internal/converters/URLConverter.java | 5 +- .../tamaya/core/ConfigurationBuilderTest.java | 28 +++---- .../core/ConfigurationContextBuilderTest.java | 28 +++---- .../tamaya/core/internal/CTestConverter.java | 3 +- .../internal/CoreConfigurationBuilderTest.java | 12 +-- .../core/internal/CoreConfigurationTest.java | 10 +-- .../converters/BigDecimalConverterTest.java | 8 +- .../converters/BigIntegerConverterTest.java | 8 +- .../converters/BooleanConverterTest.java | 6 +- .../internal/converters/ByteConverterTest.java | 6 +- .../internal/converters/CharConverterTest.java | 6 +- .../internal/converters/ClassConverterTest.java | 18 ++--- .../converters/CurrencyConverterTest.java | 6 +- .../converters/DoubleConverterTest.java | 6 +- .../converters/DurationConverterTest.java | 18 ++--- .../internal/converters/FileConverterTest.java | 8 +- .../internal/converters/FloatConverterTest.java | 6 +- .../converters/InstantConverterTest.java | 10 +-- .../converters/IntegerConverterTest.java | 6 +- .../converters/LocalDateConverterTest.java | 10 +-- .../converters/LocalDateTimeConverterTest.java | 10 +-- .../converters/LocalTimeConverterTest.java | 10 +-- .../internal/converters/LongConverterTest.java | 6 +- .../converters/NumberConverterTest.java | 6 +- .../converters/OffsetDateTimeConverterTest.java | 10 +-- .../converters/OffsetTimeConverterTest.java | 10 +-- .../converters/OptionalConverterTest.java | 22 ++++-- .../internal/converters/PathConverterTest.java | 16 ++-- .../internal/converters/ShortConverterTest.java | 6 +- .../converters/SupplierConverterTest.java | 15 ++-- .../internal/converters/URIConverterTest.java | 20 ++--- .../internal/converters/URLConverterTest.java | 20 ++--- .../core/testdata/TestPropertyFilter.java | 3 +- .../testdata/TestRemovingPropertyFilter.java | 3 +- .../tamaya/spisupport/DefaultConfiguration.java | 35 ++++----- .../apache/tamaya/spisupport/EnumConverter.java | 5 +- .../spisupport/PropertyConverterManager.java | 9 +-- .../tamaya/spisupport/PropertyFiltering.java | 77 ++++++++------------ .../tamaya/spisupport/RegexPropertyFilter.java | 3 +- .../tamaya/spisupport/CTestConverter.java | 3 +- .../DefaultConfigurationBuilderTest.java | 18 ++--- .../DefaultConfigurationContextBuilderTest.java | 36 ++++----- .../tamaya/spisupport/EnumConverterTest.java | 10 +-- .../tamaya/spisupport/IntegerTestConverter.java | 5 +- .../tamaya/spisupport/MockedPropertyFilter.java | 3 +- .../PropertyConverterManagerTest.java | 19 +++-- .../PropertyFilterComparatorTest.java | 5 +- .../spisupport/RegexPropertyFilterTest.java | 30 ++++---- .../propertysource/EnumConverterTest.java | 8 +- 81 files changed, 418 insertions(+), 526 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/api/src/main/java/org/apache/tamaya/spi/ConversionContext.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/spi/ConversionContext.java b/code/api/src/main/java/org/apache/tamaya/spi/ConversionContext.java index 3631d5a..d4c2601 100644 --- a/code/api/src/main/java/org/apache/tamaya/spi/ConversionContext.java +++ b/code/api/src/main/java/org/apache/tamaya/spi/ConversionContext.java @@ -32,6 +32,7 @@ import java.util.function.Consumer; */ public class ConversionContext { + public static final ConversionContext EMPTY = new ConversionContext.Builder(TypeLiteral.of(String.class)).build(); private final Configuration configuration; private final String key; private final List<PropertyValue> values; @@ -39,42 +40,6 @@ public class ConversionContext { private final AnnotatedElement annotatedElement; private final Set<String> supportedFormats = new LinkedHashSet<>(); - private static ThreadLocal<ConversionContext> CONTEXT = new ThreadLocal<>(); - - /** - * Access the current conversion context. - * @return the current conversion context, or null. - */ - public static ConversionContext current(){ - return CONTEXT.get(); - } - - /** - * If the current conversoin context is available, this performs the given action. - * @param action the consumer to be executed, not null. - */ - public static void doOptional(Consumer<ConversionContext> action){ - ConversionContext ctx = current(); - if(ctx!=null){ - action.accept(ctx); - } - } - - /** - * Sets the current conversion context. - * @param context the conversion context, not null. - */ - public static void set(ConversionContext context){ - CONTEXT.set(context); - } - - /** - * Removes the current conversion context. - */ - public static void reset(){ - CONTEXT.remove(); - } - /** * Private constructor used from builder. * @param builder the builder, not {@code null}. http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/api/src/main/java/org/apache/tamaya/spi/FilterContext.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/spi/FilterContext.java b/code/api/src/main/java/org/apache/tamaya/spi/FilterContext.java index 49af39d..e120744 100644 --- a/code/api/src/main/java/org/apache/tamaya/spi/FilterContext.java +++ b/code/api/src/main/java/org/apache/tamaya/spi/FilterContext.java @@ -38,42 +38,6 @@ public class FilterContext { @Experimental private boolean singlePropertyScoped; - private static ThreadLocal<FilterContext> CONTEXT = new ThreadLocal<>(); - - /** - * Access the current filter context. - * @return the current filter context, or null. - */ - public static FilterContext get(){ - return CONTEXT.get(); - } - - /** - * If the current conversoin context is available, this performs the given action. - * @param action the consumer to be executed, not null. - */ - public static void doOptional(Consumer<FilterContext> action){ - FilterContext ctx = get(); - if(ctx!=null){ - action.accept(ctx); - } - } - - /** - * Sets the current filter context. - * @param context the FilterContext, not null. - */ - public static void set(FilterContext context){ - CONTEXT.set(context); - } - - /** - * Removes the current filter context. - */ - public static void reset(){ - CONTEXT.remove(); - } - /** * Creates a new FilterContext, for filtering of a multi createValue access http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java b/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java index c1f93f4..187724e 100644 --- a/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java +++ b/code/api/src/main/java/org/apache/tamaya/spi/PropertyConverter.java @@ -32,15 +32,16 @@ public interface PropertyConverter<T>{ /** * Convert the given configuration keys from its String representation into the required target type. - * Additional context can be obtained from {@link ConversionContext}, this also allows to add a createList + * Additional data can be obtained from {@link ConversionContext}, which also allows to add a list * of supported formats, which is very handy in case a - * createValue could not be converted. This createList of supported formats can then shown to the user to give some hints - * how a createValue could be configured. + * value could not be converted. This list of supported formats can then shown to the user to give some hints + * how a value could be configured. * * @param value configuration key that needs to be converted + * @param context the converter context, not null. * @return the converted createValue * @see ConversionContext */ - T convert(String value); + T convert(String value, ConversionContext context); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java ---------------------------------------------------------------------- diff --git a/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java b/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java index c157069..8ea422c 100644 --- a/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java +++ b/code/api/src/main/java/org/apache/tamaya/spi/PropertyFilter.java @@ -29,7 +29,7 @@ package org.apache.tamaya.spi; public interface PropertyFilter{ /** - * <p>Maps the current {@code valueToBeFiltered} createValue to a new createValue. The resulting createValue will be used as the result + * <p>Maps the current {@code value} to a new value. The resulting value will be used as the result * passed to the user.</p> * <p>If a filter is currently not available, it should just pass the input map to the method's * output.</p> @@ -40,11 +40,12 @@ public interface PropertyFilter{ * <li>reentrant</li> * <li>thread-safe</li> * </ul> - * @param value the createValue to be filtered, which also can be {@code null} if removed by another filter. + * @param value the value to be filtered, which also can be {@code null} if removed by another filter. + * @param context the filter context, not null. * @return the filtered createValue, or {@code null} if the createValue should be removed alltogether. * @see PropertyValue * @see FilterContext */ - PropertyValue filterProperty(PropertyValue value); + PropertyValue filterProperty(PropertyValue value, FilterContext context); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/api/src/test/java/org/apache/tamaya/spi/ConversionContextTest.java ---------------------------------------------------------------------- diff --git a/code/api/src/test/java/org/apache/tamaya/spi/ConversionContextTest.java b/code/api/src/test/java/org/apache/tamaya/spi/ConversionContextTest.java index ad0ff95..a6a777f 100644 --- a/code/api/src/test/java/org/apache/tamaya/spi/ConversionContextTest.java +++ b/code/api/src/test/java/org/apache/tamaya/spi/ConversionContextTest.java @@ -122,7 +122,7 @@ public class ConversionContextTest { private static final class MyConverter implements PropertyConverter<InetAddress> { @Override - public InetAddress convert(String value) { + public InetAddress convert(String value, ConversionContext context) { return null; } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/api/src/test/java/org/apache/tamaya/spi/FilterContextTest.java ---------------------------------------------------------------------- diff --git a/code/api/src/test/java/org/apache/tamaya/spi/FilterContextTest.java b/code/api/src/test/java/org/apache/tamaya/spi/FilterContextTest.java index 3ed57f3..1b74f0b 100644 --- a/code/api/src/test/java/org/apache/tamaya/spi/FilterContextTest.java +++ b/code/api/src/test/java/org/apache/tamaya/spi/FilterContextTest.java @@ -37,30 +37,30 @@ import static org.junit.Assert.assertNotNull; */ public class FilterContextTest { - @Test - public void setNullContext() { - FilterContext.set(null); - } - - @Test - public void setGetContext() { - PropertyValue val = PropertyValue.of("getKey", "v", ""); - FilterContext ctx = new FilterContext(val, - new HashMap<String,PropertyValue>(), ConfigurationContext.EMPTY); - FilterContext.set(ctx); - assertEquals(ctx, FilterContext.get()); - } - - @Test - public void resetContext() { - PropertyValue val = PropertyValue.of("getKey", "v", ""); - FilterContext ctx = new FilterContext(val, - new HashMap<String,PropertyValue>(), ConfigurationContext.EMPTY); - FilterContext.set(ctx); - assertNotNull(FilterContext.get()); - FilterContext.reset(); - assertNull(FilterContext.get()); - } +// @Test +// public void setNullContext() { +// FilterContext.set(null); +// } +// +// @Test +// public void setGetContext() { +// PropertyValue val = PropertyValue.of("getKey", "v", ""); +// FilterContext ctx = new FilterContext(val, +// new HashMap<String,PropertyValue>(), ConfigurationContext.EMPTY); +// FilterContext.set(ctx); +// assertEquals(ctx, FilterContext.get()); +// } +// +// @Test +// public void resetContext() { +// PropertyValue val = PropertyValue.of("getKey", "v", ""); +// FilterContext ctx = new FilterContext(val, +// new HashMap<String,PropertyValue>(), ConfigurationContext.EMPTY); +// FilterContext.set(ctx); +// assertNotNull(FilterContext.get()); +// FilterContext.reset(); +// assertNull(FilterContext.get()); +// } @Test(expected = NullPointerException.class) public void constructorRequiresNonNullPropertyValueTwoParameterVariant1() { http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java index 89370b0..2086d74 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java @@ -47,16 +47,15 @@ public class BigDecimalConverter implements PropertyConverter<BigDecimal> { private final BigIntegerConverter integerConverter = new BigIntegerConverter(); @Override - public BigDecimal convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "<bigDecimal> -> new BigDecimal(String)")); + public BigDecimal convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "<bigDecimal> -> new BigDecimal(String)"); String trimmed = Objects.requireNonNull(value).trim(); try{ return new BigDecimal(trimmed); } catch(Exception e){ LOG.finest("Parsing BigDecimal failed, trying BigInteger for: " + value); - BigInteger bigInt = integerConverter.convert(value); + BigInteger bigInt = integerConverter.convert(value, ctx); if(bigInt!=null){ return new BigDecimal(bigInt); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java index 6717c9d..2dac3c0 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java @@ -45,9 +45,8 @@ public class BigIntegerConverter implements PropertyConverter<BigInteger> { private static final Logger LOG = Logger.getLogger(BigIntegerConverter.class.getName()); @Override - public BigInteger convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "[-]0X.. (hex)", "[-]0x... (hex)", "<bigint> -> new BigInteger(bigint)")); + public BigInteger convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "[-]0X.. (hex)", "[-]0x... (hex)", "<bigint> -> new BigInteger(bigint)"); String trimmed = Objects.requireNonNull(value).trim(); if(trimmed.startsWith("0x") || trimmed.startsWith("0X")){ LOG.finest("Parsing Hex createValue to BigInteger: " + value); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java index f692718..a34acaa 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java @@ -35,9 +35,10 @@ public class BooleanConverter implements PropertyConverter<Boolean> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public Boolean convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "yes (ignore case)", "y (ignore case)", "true (ignore case)", "t (ignore case)", "1", "no (ignore case)", "n (ignore case)", "false (ignore case)", "f (ignore case)", "0")); + public Boolean convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "yes (ignore case)", "y (ignore case)", + "true (ignore case)", "t (ignore case)", "1", "no (ignore case)", "n (ignore case)", + "false (ignore case)", "f (ignore case)", "0"); String ignoreCaseValue = Objects.requireNonNull(value) .trim() .toLowerCase(Locale.ENGLISH); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java index c6aa6be..8a7e740 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java @@ -50,9 +50,8 @@ public class ByteConverter implements PropertyConverter<Byte>{ private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public Byte convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(),"<byte>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX")); + public Byte convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(),"<byte>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX"); String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)){ case "MIN_VALUE": http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java index 65ad2ae..52467ed 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java @@ -41,9 +41,8 @@ public class CharConverter implements PropertyConverter<Character>{ private static final Logger LOG = Logger.getLogger(CharConverter.class.getName()); @Override - public Character convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(),"\\'<char>\\'", "<char>", "<charNum>")); + public Character convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(),"\\'<char>\\'", "<char>", "<charNum>"); String trimmed = Objects.requireNonNull(value).trim(); if(trimmed.isEmpty()){ return null; http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java index 0f6011c..65cb7b9 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java @@ -39,12 +39,11 @@ public class ClassConverter implements PropertyConverter<Class<?>>{ private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public Class<?> convert(String value) { + public Class<?> convert(String value, ConversionContext ctx) { if(value==null){ return null; } - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(),"<fullyQualifiedClassName>")); + ctx.addSupportedFormats(getClass(),"<fullyQualifiedClassName>"); String trimmed = Objects.requireNonNull(value).trim(); try{ return Class.forName(trimmed, false, Thread.currentThread().getContextClassLoader()); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ConvertQuery.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ConvertQuery.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ConvertQuery.java index a570685..a999112 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ConvertQuery.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ConvertQuery.java @@ -50,23 +50,18 @@ final class ConvertQuery<T> implements ConfigQuery<T> { List<PropertyConverter<T>> converters = config.getContext().getPropertyConverters(type); ConversionContext context = new ConversionContext.Builder(type).setConfiguration(config) .setKey(ConvertQuery.class.getName()).build(); - try { - ConversionContext.set(context); - for (PropertyConverter<?> conv : converters) { - try { - if (conv instanceof OptionalConverter) { - continue; - } - T result = (T) conv.convert(rawValue); - if (result != null) { - return result; - } - } catch (Exception e) { - LOG.log(Level.FINEST, e, () -> "Converter " + conv + " failed to convert to " + type); + for (PropertyConverter<?> conv : converters) { + try { + if (conv instanceof OptionalConverter) { + continue; } + T result = (T) conv.convert(rawValue, context); + if (result != null) { + return result; + } + } catch (Exception e) { + LOG.log(Level.FINEST, e, () -> "Converter " + conv + " failed to convert to " + type); } - }finally{ - ConversionContext.reset(); } return null; } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java index a85f9fd..d7b9343 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java @@ -44,9 +44,9 @@ public class CurrencyConverter implements PropertyConverter<Currency> { private static final Logger LOG = Logger.getLogger(CurrencyConverter.class.getName()); @Override - public Currency convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "<currencyCode>, using Locale.ENGLISH", "<numericValue>", "<locale>")); + public Currency convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "<currencyCode>, using Locale.ENGLISH", "<numericValue>", + "<locale>"); String trimmed = Objects.requireNonNull(value).trim(); try { return Currency.getInstance(trimmed.toUpperCase(Locale.ENGLISH)); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java index 9b19078..f92fe72 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java @@ -52,9 +52,9 @@ public class DoubleConverter implements PropertyConverter<Double> { private final LongConverter integerConverter = new LongConverter(); @Override - public Double convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "<double>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN")); + public Double convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "<double>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", + "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN"); String trimmed = Objects.requireNonNull(value).trim(); switch (trimmed.toUpperCase(Locale.ENGLISH)) { case "POSITIVE_INFINITY": @@ -77,7 +77,7 @@ public class DoubleConverter implements PropertyConverter<Double> { LOG.finest("Parsing of double as floating number failed, trying parsing integral" + " number/hex instead..."); } - Long val = integerConverter.convert(trimmed); + Long val = integerConverter.convert(trimmed, ctx); if(val!=null){ return val.doubleValue(); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DurationConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DurationConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DurationConverter.java index cfbae48..9fb5d7b 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DurationConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DurationConverter.java @@ -37,10 +37,9 @@ public class DurationConverter implements PropertyConverter<Duration> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public Duration convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), - Duration.of(1234, ChronoUnit.SECONDS).toString())); + public Duration convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), + Duration.of(1234, ChronoUnit.SECONDS).toString()); try { return Duration.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java index ba2392a..b911e31 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java @@ -36,12 +36,11 @@ public class FileConverter implements PropertyConverter<File> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public File convert(String value) { + public File convert(String value, ConversionContext ctx) { if(value==null || value.isEmpty()){ return null; } - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(),"<File>")); + ctx.addSupportedFormats(getClass(),"<File>"); String trimmed = Objects.requireNonNull(value).trim(); try { return new File(trimmed); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java index e47b497..eaae2b4 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java @@ -52,10 +52,9 @@ public class FloatConverter implements PropertyConverter<Float> { private final IntegerConverter integerConverter = new IntegerConverter(); @Override - public Float convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "<float>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", - "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN")); + public Float convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "<float>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE", + "POSITIVE_INFINITY", "NEGATIVE_INFINITY", "NAN"); String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)){ case "POSITIVE_INFINITY": @@ -78,7 +77,7 @@ public class FloatConverter implements PropertyConverter<Float> { LOG.finest("Parsing of float as floating number failed, trying parsing integral" + " number/hex instead..."); } - Integer val = integerConverter.convert(trimmed); + Integer val = integerConverter.convert(trimmed, ctx); if(val!=null) { return val.floatValue(); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java index cfa1103..f7eafa7 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/InstantConverter.java @@ -36,9 +36,8 @@ public class InstantConverter implements PropertyConverter<Instant> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public Instant convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), Instant.now().toString())); + public Instant convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), Instant.now().toString()); try{ return Instant.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java index a128c97..1fa1124 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java @@ -52,9 +52,8 @@ public class IntegerConverter implements PropertyConverter<Integer>{ private static final Logger LOG = Logger.getLogger(IntegerConverter.class.getName()); @Override - public Integer convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "<int>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX")); + public Integer convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "<int>", "MIN_VALUE", "MIN", "MAX_VALUE", "MAX"); String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)){ case "MIN_VALUE": http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateConverter.java index 1acb83e..04d107a 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateConverter.java @@ -36,9 +36,8 @@ public class LocalDateConverter implements PropertyConverter<LocalDate> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public LocalDate convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), LocalDate.now().toString())); + public LocalDate convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), LocalDate.now().toString()); try{ return LocalDate.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.java index bc64d6b..4a46b6d 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverter.java @@ -36,9 +36,8 @@ public class LocalDateTimeConverter implements PropertyConverter<LocalDateTime> private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public LocalDateTime convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), LocalDateTime.now().toString())); + public LocalDateTime convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), LocalDateTime.now().toString()); try{ return LocalDateTime.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalTimeConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalTimeConverter.java index ab10e04..17f9779 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalTimeConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LocalTimeConverter.java @@ -36,9 +36,8 @@ public class LocalTimeConverter implements PropertyConverter<LocalTime> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public LocalTime convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), LocalTime.now().toString())); + public LocalTime convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), LocalTime.now().toString()); try{ return LocalTime.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java index 1bdad71..429065c 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java @@ -49,9 +49,8 @@ public class LongConverter implements PropertyConverter<Long>{ private static final Logger LOGGER = Logger.getLogger(LongConverter.class.getName()); @Override - public Long convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "<long>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE")); + public Long convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "<long>", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE"); String trimmed = Objects.requireNonNull(value).trim(); switch (trimmed.toUpperCase(Locale.ENGLISH)) { http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java index 82e4486..a02d0cf 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java @@ -45,10 +45,9 @@ public class NumberConverter implements PropertyConverter<Number>{ private final LongConverter longConverter = new LongConverter(); @Override - public Number convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "<double>, <long>", "0x (hex)", "0X... (hex)", "POSITIVE_INFINITY", - "NEGATIVE_INFINITY", "NAN")); + public Number convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "<double>, <long>", "0x (hex)", "0X... (hex)", "POSITIVE_INFINITY", + "NEGATIVE_INFINITY", "NAN"); String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)) { @@ -59,7 +58,7 @@ public class NumberConverter implements PropertyConverter<Number>{ case "NAN": return Double.NaN; default: - Long lVal = longConverter.convert(trimmed); + Long lVal = longConverter.convert(trimmed, ctx); if (lVal != null) { return lVal; } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.java index acdd0d5..141ef2b 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverter.java @@ -36,9 +36,8 @@ public class OffsetDateTimeConverter implements PropertyConverter<OffsetDateTime private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public OffsetDateTime convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), OffsetDateTime.now().toString())); + public OffsetDateTime convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), OffsetDateTime.now().toString()); try{ return OffsetDateTime.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.java index 74e9847..19d6ddd 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverter.java @@ -36,9 +36,8 @@ public class OffsetTimeConverter implements PropertyConverter<OffsetTime> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public OffsetTime convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), OffsetTime.now().toString())); + public OffsetTime convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), OffsetTime.now().toString()); try{ return OffsetTime.parse(value); }catch(Exception e){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java index 0be4bef..f37d2f9 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/OptionalConverter.java @@ -36,22 +36,18 @@ import java.util.Optional; public class OptionalConverter implements PropertyConverter<Optional> { @Override - public Optional convert(String value) { + public Optional convert(String value, ConversionContext ctx) { if(value==null){ return Optional.empty(); } try{ - ConversionContext context = ConversionContext.current(); - if(context==null){ - throw new IllegalStateException("Cannot convert optional since target type is unknown."); - } - Type targetType = context.getTargetType().getType(); + Type targetType = ctx.getTargetType().getType(); ParameterizedType pt = (ParameterizedType) targetType; if(String.class.equals(pt.getActualTypeArguments()[0])){ return Optional.of(value); } ConvertQuery converter = new ConvertQuery(value, TypeLiteral.of(pt.getActualTypeArguments()[0])); - return Optional.ofNullable(context.getConfiguration().query(converter)); + return Optional.ofNullable(ctx.getConfiguration().query(converter)); }catch(Exception e){ throw new ConfigException("Error evaluating config createValue.", e); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java index f05fe0d..046dafd 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java @@ -37,12 +37,11 @@ public class PathConverter implements PropertyConverter<Path> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public Path convert(String value) { + public Path convert(String value, ConversionContext ctx) { if(value==null || value.isEmpty()){ return null; } - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(),"<File>")); + ctx.addSupportedFormats(getClass(),"<File>"); String trimmed = Objects.requireNonNull(value).trim(); try { return FileSystems.getDefault().getPath(value); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java index d111c31..ca945f5 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java @@ -50,9 +50,8 @@ public class ShortConverter implements PropertyConverter<Short>{ private static final Logger LOG = Logger.getLogger(ShortConverter.class.getName()); @Override - public Short convert(String value) { - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "short", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE")); + public Short convert(String value, ConversionContext ctx) { + ctx.addSupportedFormats(getClass(), "short", "MIN", "MIN_VALUE", "MAX", "MAX_VALUE"); String trimmed = Objects.requireNonNull(value).trim(); switch(trimmed.toUpperCase(Locale.ENGLISH)){ case "MIN_VALUE": http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/SupplierConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/SupplierConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/SupplierConverter.java index 268eb63..d4cd196 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/SupplierConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/SupplierConverter.java @@ -39,13 +39,9 @@ public class SupplierConverter implements PropertyConverter<Supplier> { private static final Logger LOG = Logger.getLogger(SupplierConverter.class.getName()); @Override - public Supplier convert(String value) { + public Supplier convert(String value, ConversionContext context) { return () -> { try{ - ConversionContext context = ConversionContext.current(); - if(context==null){ - throw new IllegalStateException("Cannot convert optional since target type is unknown."); - } Type targetType = context.getTargetType().getType(); ParameterizedType pt = (ParameterizedType) targetType; if(String.class.equals(pt.getActualTypeArguments()[0])){ http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java index b3ce5b4..3cd37c6 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java @@ -36,12 +36,11 @@ public class URIConverter implements PropertyConverter<URI> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public URI convert(String value) { + public URI convert(String value, ConversionContext ctx) { if(value==null || value.isEmpty()){ return null; } - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(), "<uri> -> new URI(uri)")); + ctx.addSupportedFormats(getClass(), "<uri> -> new URI(uri)"); String trimmed = Objects.requireNonNull(value).trim(); try { return new URI(trimmed); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java index 1396b39..683f2a7 100644 --- a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java +++ b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java @@ -36,12 +36,11 @@ public class URLConverter implements PropertyConverter<URL> { private final Logger LOG = Logger.getLogger(getClass().getName()); @Override - public URL convert(String value) { + public URL convert(String value, ConversionContext ctx) { if(value==null || value.isEmpty()){ return null; } - ConversionContext.doOptional(ctx -> - ctx.addSupportedFormats(getClass(),"<URL>")); + ctx.addSupportedFormats(getClass(),"<URL>"); String trimmed = Objects.requireNonNull(value).trim(); try { return new URL(trimmed); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/ConfigurationBuilderTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/ConfigurationBuilderTest.java b/code/core/src/test/java/org/apache/tamaya/core/ConfigurationBuilderTest.java index 839af9c..b8cea0d 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/ConfigurationBuilderTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/ConfigurationBuilderTest.java @@ -127,8 +127,8 @@ public class ConfigurationBuilderTest { @Test public void addPropertyFilters_Array() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder(); b.addPropertyFilters(filter1, filter2); Configuration cfg = b.build(); @@ -144,8 +144,8 @@ public class ConfigurationBuilderTest { @Test public void addPropertyFilters_Collection() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder(); b.addPropertyFilters(Arrays.asList(new PropertyFilter[]{filter1, filter2})); Configuration cfg = b.build(); @@ -161,8 +161,8 @@ public class ConfigurationBuilderTest { @Test public void removePropertyFilters_Array() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder() .addPropertyFilters(filter1, filter2); Configuration cfg = b.build(); @@ -182,8 +182,8 @@ public class ConfigurationBuilderTest { @Test public void removePropertyFilters_Collection() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder() .addPropertyFilters(Arrays.asList(new PropertyFilter[]{filter1, filter2})); Configuration cfg = b.build(); @@ -204,7 +204,7 @@ public class ConfigurationBuilderTest { @Test @SuppressWarnings({ "rawtypes", "unchecked" }) public void addPropertyConverters_Array() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder() .addPropertyConverters(TypeLiteral.of(String.class), converter); Configuration cfg = b.build(); @@ -220,7 +220,7 @@ public class ConfigurationBuilderTest { @Test @SuppressWarnings({ "rawtypes", "unchecked" }) public void addPropertyConverters_Collection() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder() .addPropertyConverters(TypeLiteral.of(String.class), Arrays.<PropertyConverter<Object>>asList(new PropertyConverter[]{converter})); @@ -238,7 +238,7 @@ public class ConfigurationBuilderTest { @Test @SuppressWarnings({ "rawtypes", "unchecked" }) public void removePropertyConverters_Array() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder() .addPropertyConverters(TypeLiteral.of(String.class), converter); Configuration cfg = b.build(); @@ -258,7 +258,7 @@ public class ConfigurationBuilderTest { @SuppressWarnings({ "rawtypes", "unchecked" }) @Test public void removePropertyConverters_Collection() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder() .addPropertyConverters(TypeLiteral.of(String.class), Arrays.<PropertyConverter<Object>>asList(new PropertyConverter[]{converter})); Configuration cfg = b.build(); @@ -396,7 +396,7 @@ public class ConfigurationBuilderTest { ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder(); PropertyFilter[] propertyFilters = new PropertyFilter[10]; for(int i=0;i<propertyFilters.length;i++){ - propertyFilters[i] = (value) -> value.setValue(toString() + " - "); + propertyFilters[i] = (value, ctx) -> value.setValue(toString() + " - "); } b.addPropertyFilters(propertyFilters); Comparator<PropertyFilter> pfComp = (o1, o2) -> o1.toString().compareTo(o2.toString()); @@ -421,7 +421,7 @@ public class ConfigurationBuilderTest { @Test public void testRemoveAllFilters() throws Exception { ConfigurationBuilder b = ConfigurationProvider.getConfigurationBuilder(); - b.addPropertyFilters((value) -> value.setValue(toString() + " - ")); + b.addPropertyFilters((value, ctx) -> value.setValue(toString() + " - ")); assertThat(b.getPropertyFilters().isEmpty()).isFalse(); b.removePropertyFilters(b.getPropertyFilters()); assertThat(b.getPropertyFilters().isEmpty()).isTrue(); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/ConfigurationContextBuilderTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/ConfigurationContextBuilderTest.java b/code/core/src/test/java/org/apache/tamaya/core/ConfigurationContextBuilderTest.java index 12c089b..611f337 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/ConfigurationContextBuilderTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/ConfigurationContextBuilderTest.java @@ -128,8 +128,8 @@ public class ConfigurationContextBuilderTest { @Test public void addPropertyFilters_Array() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder(); b.addPropertyFilters(filter1, filter2); ConfigurationContext ctx = b.build(); @@ -144,8 +144,8 @@ public class ConfigurationContextBuilderTest { @Test public void addPropertyFilters_Collection() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder(); b.addPropertyFilters(Arrays.asList(new PropertyFilter[]{filter1, filter2})); ConfigurationContext ctx = b.build(); @@ -160,8 +160,8 @@ public class ConfigurationContextBuilderTest { @Test public void removePropertyFilters_Array() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder() .addPropertyFilters(filter1, filter2); ConfigurationContext ctx = b.build(); @@ -179,8 +179,8 @@ public class ConfigurationContextBuilderTest { @Test public void removePropertyFilters_Collection() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder() .addPropertyFilters(Arrays.asList(new PropertyFilter[]{filter1, filter2})); ConfigurationContext ctx = b.build(); @@ -199,7 +199,7 @@ public class ConfigurationContextBuilderTest { @Test @SuppressWarnings({ "rawtypes", "unchecked" }) public void addPropertyConverters_Array() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder() .addPropertyConverters(TypeLiteral.of(String.class), converter); ConfigurationContext ctx = b.build(); @@ -214,7 +214,7 @@ public class ConfigurationContextBuilderTest { @Test @SuppressWarnings({ "rawtypes", "unchecked" }) public void addPropertyConverters_Collection() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder() .addPropertyConverters(TypeLiteral.of(String.class), Arrays.<PropertyConverter<Object>>asList(new PropertyConverter[]{converter})); @@ -231,7 +231,7 @@ public class ConfigurationContextBuilderTest { @Test @SuppressWarnings({ "rawtypes", "unchecked" }) public void removePropertyConverters_Array() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder() .addPropertyConverters(TypeLiteral.of(String.class), converter); ConfigurationContext ctx = b.build(); @@ -248,7 +248,7 @@ public class ConfigurationContextBuilderTest { @SuppressWarnings({ "rawtypes", "unchecked" }) @Test public void removePropertyConverters_Collection() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder() .addPropertyConverters(TypeLiteral.of(String.class), Arrays.<PropertyConverter<Object>>asList(new PropertyConverter[]{converter})); ConfigurationContext ctx = b.build(); @@ -383,7 +383,7 @@ public class ConfigurationContextBuilderTest { ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder(); PropertyFilter[] propertyFilters = new PropertyFilter[10]; for(int i=0;i<propertyFilters.length;i++){ - propertyFilters[i] = (value) -> value.setValue(toString() + " - "); + propertyFilters[i] = (value, ctx) -> value.setValue(toString() + " - "); } b.addPropertyFilters(propertyFilters); Comparator<PropertyFilter> pfComp = (o1, o2) -> o1.toString().compareTo(o2.toString()); @@ -407,7 +407,7 @@ public class ConfigurationContextBuilderTest { @Test public void testRemoveAllFilters() throws Exception { ConfigurationContextBuilder b = ConfigurationProvider.getConfigurationContextBuilder(); - b.addPropertyFilters((value) -> value.setValue(toString() + " - ")); + b.addPropertyFilters((value, ctx) -> value.setValue(toString() + " - ")); assertThat(b.getPropertyFilters().isEmpty()).isFalse(); b.removePropertyFilters(b.getPropertyFilters()); assertThat(b.getPropertyFilters().isEmpty()).isTrue(); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/CTestConverter.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/CTestConverter.java b/code/core/src/test/java/org/apache/tamaya/core/internal/CTestConverter.java index 62b8c9d..1cf9cc9 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/CTestConverter.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/CTestConverter.java @@ -18,6 +18,7 @@ */ package org.apache.tamaya.core.internal; +import org.apache.tamaya.spi.ConversionContext; import org.apache.tamaya.spi.PropertyConverter; /** @@ -25,7 +26,7 @@ import org.apache.tamaya.spi.PropertyConverter; */ public class CTestConverter implements PropertyConverter<C>{ @Override - public C convert(String value) { + public C convert(String value, ConversionContext ctx) { return new C(value); } } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationBuilderTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationBuilderTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationBuilderTest.java index 8dabcfd..bb96089 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationBuilderTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationBuilderTest.java @@ -95,8 +95,8 @@ public class CoreConfigurationBuilderTest { @Test public void addPropertyFilters_Array() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; CoreConfigurationBuilder b = new CoreConfigurationBuilder(); b.addPropertyFilters(filter1, filter2); Configuration cfg = b.build(); @@ -112,8 +112,8 @@ public class CoreConfigurationBuilderTest { @Test public void removePropertyFilters_Array() throws Exception { - PropertyFilter filter1 = (value) -> value; - PropertyFilter filter2 = (value) -> value; + PropertyFilter filter1 = (value, ctx) -> value; + PropertyFilter filter2 = (value, ctx) -> value; ConfigurationBuilder b = new CoreConfigurationBuilder() .addPropertyFilters(filter1, filter2); Configuration cfg = b.build(); @@ -134,7 +134,7 @@ public class CoreConfigurationBuilderTest { @Test @SuppressWarnings({ "rawtypes", "unchecked" }) public void addPropertyConverter() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationBuilder b = new CoreConfigurationBuilder() .addPropertyConverters(TypeLiteral.of(String.class), converter); Configuration cfg = b.build(); @@ -150,7 +150,7 @@ public class CoreConfigurationBuilderTest { @Test @SuppressWarnings({ "rawtypes", "unchecked" }) public void removePropertyConverters_Array() throws Exception { - PropertyConverter converter = (value) -> value.toLowerCase(); + PropertyConverter converter = (value, ctx) -> value.toLowerCase(); ConfigurationBuilder b = new CoreConfigurationBuilder() .addPropertyConverters(TypeLiteral.of(String.class), converter); Configuration cfg = b.build(); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationTest.java index 291bc46..4f19f07 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationTest.java @@ -87,7 +87,7 @@ public class CoreConfigurationTest { Configuration cfg = new CoreConfigurationBuilder().build(); PropertyConverter testConverter = new PropertyConverter() { @Override - public Object convert(String value) { + public Object convert(String value, ConversionContext ctx) { return ""; } }; @@ -101,7 +101,7 @@ public class CoreConfigurationTest { Configuration cfg = new CoreConfigurationBuilder().build(); PropertyConverter testConverter = new PropertyConverter() { @Override - public Object convert(String value) { + public Object convert(String value, ConversionContext ctx) { return ""; } }; @@ -111,7 +111,7 @@ public class CoreConfigurationTest { assertThat(cfg.getContext().getPropertyConverters().get(TypeLiteral.of(String.class)).contains(testConverter)).isTrue(); testConverter = new PropertyConverter() { @Override - public Object convert(String value) { + public Object convert(String value, ConversionContext ctx) { return Integer.valueOf(5); } }; @@ -125,7 +125,7 @@ public class CoreConfigurationTest { Configuration cfg = new CoreConfigurationBuilder().build(); PropertyConverter testConverter = new PropertyConverter() { @Override - public Object convert(String value) { + public Object convert(String value, ConversionContext ctx) { return ""; } }; @@ -144,7 +144,7 @@ public class CoreConfigurationTest { PropertyFilter testFilter = new PropertyFilter() { @Override - public PropertyValue filterProperty(PropertyValue value) { + public PropertyValue filterProperty(PropertyValue value, FilterContext ctx) { return value; } }; http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java index 3269c1c..40b3aca 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigDecimalConverterTest.java @@ -119,7 +119,7 @@ public class BigDecimalConverterTest { ConversionContext context = mock(ConversionContext.class); BigDecimalConverter converter = new BigDecimalConverter(); - BigDecimal value = converter.convert(""); + BigDecimal value = converter.convert("", context); assertThat(value).isNull(); } @@ -127,10 +127,10 @@ public class BigDecimalConverterTest { @Test public void callToConvertAddsMoreSupportedFormatsToTheContext() throws Exception { ConversionContext context = mock(ConversionContext.class); - ConversionContext.set(context); + BigDecimalConverter converter = new BigDecimalConverter(); - BigDecimal value = converter.convert(""); - ConversionContext.reset(); + BigDecimal value = converter.convert("", context); + assertThat(value).isNull(); verify(context).addSupportedFormats(BigDecimalConverter.class, "<bigDecimal> -> new BigDecimal(String)"); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigIntegerConverterTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigIntegerConverterTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigIntegerConverterTest.java index bf7a2d9..95f6104 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigIntegerConverterTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BigIntegerConverterTest.java @@ -133,7 +133,7 @@ public class BigIntegerConverterTest { ConversionContext context = mock(ConversionContext.class); BigIntegerConverter converter = new BigIntegerConverter(); - BigInteger value = converter.convert(""); + BigInteger value = converter.convert("", context); assertThat(value).isNull(); } @@ -141,10 +141,10 @@ public class BigIntegerConverterTest { @Test public void callToConvertAddsMoreSupportedFormatsToTheContext() throws Exception { ConversionContext context = new ConversionContext.Builder(TypeLiteral.of(BigInteger.class)).build(); - ConversionContext.set(context); + BigIntegerConverter converter = new BigIntegerConverter(); - BigInteger value = converter.convert(""); - ConversionContext.reset(); + BigInteger value = converter.convert("", context); + assertThat(value).isNull(); assertThat(context.getSupportedFormats().contains("<bigint> -> new BigInteger(bigint) (BigIntegerConverter)")).isTrue(); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BooleanConverterTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BooleanConverterTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BooleanConverterTest.java index dc5b40a..647a80b 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BooleanConverterTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/BooleanConverterTest.java @@ -133,10 +133,10 @@ public class BooleanConverterTest { @Test public void callToConvertAddsMoreSupportedFormatsToTheContext() throws Exception { ConversionContext context = new ConversionContext.Builder(TypeLiteral.of(Boolean.class)).build(); - ConversionContext.set(context); + BooleanConverter converter = new BooleanConverter(); - converter.convert(""); - ConversionContext.reset(); + converter.convert("", context); + assertThat(context.getSupportedFormats().contains("true (ignore case) (BooleanConverter)")).isTrue(); assertThat(context.getSupportedFormats().contains("false (ignore case) (BooleanConverter)")).isTrue(); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ByteConverterTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ByteConverterTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ByteConverterTest.java index a730e07..a7923b9 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ByteConverterTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ByteConverterTest.java @@ -96,10 +96,10 @@ public class ByteConverterTest { @Test public void callToConvertAddsMoreSupportedFormatsToTheContext() throws Exception { ConversionContext context = new ConversionContext.Builder(TypeLiteral.of(Byte.class)).build(); - ConversionContext.set(context); + ByteConverter converter = new ByteConverter(); - converter.convert(""); - ConversionContext.reset(); + converter.convert("", context); + assertThat(context.getSupportedFormats().contains("<byte> (ByteConverter)")).isTrue(); assertThat(context.getSupportedFormats().contains("MIN_VALUE (ByteConverter)")).isTrue(); assertThat(context.getSupportedFormats().contains("MAX_VALUE (ByteConverter)")).isTrue(); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CharConverterTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CharConverterTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CharConverterTest.java index ef3f020..790b245 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CharConverterTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CharConverterTest.java @@ -150,10 +150,10 @@ public class CharConverterTest { @Test public void callToConvertAddsMoreSupportedFormatsToTheContext() throws Exception { ConversionContext context = new ConversionContext.Builder(TypeLiteral.of(Character.class)).build(); - ConversionContext.set(context); + CharConverter converter = new CharConverter(); - converter.convert(""); - ConversionContext.reset(); + converter.convert("", context); + assertThat(context.getSupportedFormats().contains("<char> (CharConverter)")).isTrue(); assertThat(context.getSupportedFormats().contains("\\'<char>\\' (CharConverter)")).isTrue(); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ClassConverterTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ClassConverterTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ClassConverterTest.java index d52ffdb..6797dfc 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ClassConverterTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ClassConverterTest.java @@ -37,41 +37,41 @@ public class ClassConverterTest { @Test public void testConvert_Class() throws Exception { ClassConverter converter = new ClassConverter(); - assertThat(BigDecimal.class).isEqualTo(converter.convert("java.math.BigDecimal")); + assertThat(BigDecimal.class).isEqualTo(converter.convert("java.math.BigDecimal", context)); } @Test public void testConvert_Class_WithSpaces() throws Exception { ClassConverter converter = new ClassConverter(); - assertThat(BigDecimal.class).isEqualTo(converter.convert(" java.math.BigDecimal\t")); + assertThat(BigDecimal.class).isEqualTo(converter.convert(" java.math.BigDecimal\t", context)); } @Test public void testConvert_Class_WithSpacesBefore() throws Exception { ClassConverter converter = new ClassConverter(); - assertThat(BigDecimal.class).isEqualTo(converter.convert(" java.math.BigDecimal")); + assertThat(BigDecimal.class).isEqualTo(converter.convert(" java.math.BigDecimal", context)); } @Test public void testConvert_Class_WithSpacesAfter() throws Exception { ClassConverter converter = new ClassConverter(); - assertThat(BigDecimal.class).isEqualTo(converter.convert("java.math.BigDecimal ")); + assertThat(BigDecimal.class).isEqualTo(converter.convert("java.math.BigDecimal ", context)); } @Test public void testConvert_NotPresent() throws Exception { ClassConverter converter = new ClassConverter(); - assertThat(converter.convert("")).isNull(); - assertThat(converter.convert(null)).isNull(); + assertThat(converter.convert("", context)).isNull(); + assertThat(converter.convert(null, context)).isNull(); } @Test public void callToConvertAddsMoreSupportedFormatsToTheContext() throws Exception { ConversionContext context = new ConversionContext.Builder(TypeLiteral.of(Class.class)).build(); - ConversionContext.set(context); + ClassConverter converter = new ClassConverter(); - converter.convert(""); - ConversionContext.reset(); + converter.convert("", context); + assertThat(context.getSupportedFormats().contains("<fullyQualifiedClassName> (ClassConverter)")).isTrue(); } http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CurrencyConverterTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CurrencyConverterTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CurrencyConverterTest.java index b8cde19..533a197 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CurrencyConverterTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/CurrencyConverterTest.java @@ -187,10 +187,10 @@ public class CurrencyConverterTest { @Test public void callToConvertAddsMoreSupportedFormatsToTheContext() throws Exception { ConversionContext context = new ConversionContext.Builder(TypeLiteral.of(Currency.class)).build(); - ConversionContext.set(context); + CurrencyConverter converter = new CurrencyConverter(); - converter.convert(""); - ConversionContext.reset(); + converter.convert("", context); + assertThat(context.getSupportedFormats().contains("<numericValue> (CurrencyConverter)")).isTrue(); assertThat(context.getSupportedFormats().contains("<locale> (CurrencyConverter)")).isTrue(); http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DoubleConverterTest.java ---------------------------------------------------------------------- diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DoubleConverterTest.java b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DoubleConverterTest.java index 0160360..2384c3a 100644 --- a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DoubleConverterTest.java +++ b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DoubleConverterTest.java @@ -183,10 +183,10 @@ public class DoubleConverterTest { @Test public void callToConvertAddsMoreSupportedFormatsToTheContext() throws Exception { ConversionContext context = new ConversionContext.Builder(TypeLiteral.of(Double.class)).build(); - ConversionContext.set(context); + DoubleConverter converter = new DoubleConverter(); - converter.convert(""); - ConversionContext.reset(); + converter.convert("", context); + assertThat(context.getSupportedFormats().contains("<double> (DoubleConverter)")).isTrue(); assertThat(context.getSupportedFormats().contains("MIN_VALUE (DoubleConverter)")).isTrue();
