http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DurationConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DurationConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DurationConverterTest.java
index 5fd3ce2..e9e500e 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DurationConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/DurationConverterTest.java
@@ -55,17 +55,17 @@ public class DurationConverterTest {
     @Test
     public void convert() throws Exception {
         DurationConverter conv = new DurationConverter();
-        Duration duration = conv.convert("PT20.345S");
+        Duration duration = conv.convert("PT20.345S", context);
         assertThat(duration).isEqualTo(Duration.parse("PT20.345S"));
-        duration = conv.convert("PT15M");
+        duration = conv.convert("PT15M", context);
         assertThat(duration).isEqualTo(Duration.parse("PT15M"));
-        duration = conv.convert("PT10H");
+        duration = conv.convert("PT10H", context);
         assertThat(duration).isEqualTo(Duration.parse("PT10H"));
-        duration = conv.convert("P2D");
+        duration = conv.convert("P2D", context);
         assertThat(duration).isEqualTo(Duration.parse("P2D"));
-        duration = conv.convert("P2DT3H4M");
+        duration = conv.convert("P2DT3H4M", context);
         assertThat(duration).isEqualTo(Duration.parse("P2DT3H4M"));
-        duration = conv.convert("foo");
+        duration = conv.convert("foo", context);
         assertThat(duration).isNull();
     }
 
@@ -80,10 +80,10 @@ public class DurationConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Duration.class)).build();
-        ConversionContext.set(context);
+
         DurationConverter converter = new DurationConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().contains("PT20M34S 
(DurationConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FileConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FileConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FileConverterTest.java
index 858fa06..de2a409 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FileConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FileConverterTest.java
@@ -41,13 +41,13 @@ public class FileConverterTest {
         FileConverter instance = new FileConverter();
         File result;
         
-        assertThat(instance.convert(null)).isNull();
+        assertThat(instance.convert(null, context)).isNull();
         
         URL testfileUrl = getClass().getResource("/testfile.properties");
         System.out.println(testfileUrl.toString());
-        ConversionContext.set(context);
-        result = instance.convert(testfileUrl.toString());
-        ConversionContext.reset();
+
+        result = instance.convert(testfileUrl.toString(), context);
+
 
         assertThat(result).isNotNull();
         assertThat(context.getSupportedFormats().contains("<File> 
(FileConverter)")).isTrue();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FloatConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FloatConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FloatConverterTest.java
index f504088..c8c8900 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FloatConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/FloatConverterTest.java
@@ -183,10 +183,10 @@ public class FloatConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Float.class)).build();
-        ConversionContext.set(context);
+
         FloatConverter converter = new FloatConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
         assertThat(context.getSupportedFormats().contains("<float> 
(FloatConverter)")).isTrue();
         assertThat(context.getSupportedFormats().contains("MIN_VALUE 
(FloatConverter)")).isTrue();
         assertThat(context.getSupportedFormats().contains("MAX_VALUE 
(FloatConverter)")).isTrue();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/InstantConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/InstantConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/InstantConverterTest.java
index 50c3c7c..ddb9092 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/InstantConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/InstantConverterTest.java
@@ -41,9 +41,9 @@ public class InstantConverterTest {
     @Test
     public void convert() throws Exception {
         InstantConverter conv = new InstantConverter();
-        Instant value = conv.convert("2007-12-03T10:15:30.00Z");
+        Instant value = conv.convert("2007-12-03T10:15:30.00Z", context);
         assertThat(Instant.parse("2007-12-03T10:15:30.00Z")).isEqualTo(value);
-        value = conv.convert("foo");
+        value = conv.convert("foo", context);
         assertThat(value).isNull();
     }
 
@@ -60,10 +60,10 @@ public class InstantConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Instant.class)).build();
-        ConversionContext.set(context);
+
         InstantConverter converter = new InstantConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().toString().contains(" 
(InstantConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/IntegerConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/IntegerConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/IntegerConverterTest.java
index 8060185..6d6d8cc 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/IntegerConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/IntegerConverterTest.java
@@ -120,10 +120,10 @@ public class IntegerConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Integer.class)).build();
-        ConversionContext.set(context);
+
         IntegerConverter converter = new IntegerConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().contains("<int> 
(IntegerConverter)")).isTrue();
         assertThat(context.getSupportedFormats().contains("MIN_VALUE 
(IntegerConverter)")).isTrue();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateConverterTest.java
index 57a8ea5..e7f0ef7 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateConverterTest.java
@@ -41,9 +41,9 @@ public class LocalDateConverterTest {
     @Test
     public void convert() throws Exception {
         LocalDateConverter conv = new LocalDateConverter();
-        LocalDate value = conv.convert("2007-12-03");
+        LocalDate value = conv.convert("2007-12-03", context);
         assertThat(LocalDate.parse("2007-12-03")).isEqualTo(value);
-        value = conv.convert("foo");
+        value = conv.convert("foo", context);
         assertThat(value).isNull();
     }
 
@@ -60,10 +60,10 @@ public class LocalDateConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(LocalDate.class)).build();
-        ConversionContext.set(context);
+
         LocalDateConverter converter = new LocalDateConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().toString().contains(" 
(LocalDateConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverterTest.java
index 5fbe82c..2dd8a66 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalDateTimeConverterTest.java
@@ -41,9 +41,9 @@ public class LocalDateTimeConverterTest {
     @Test
     public void convert() throws Exception {
         LocalDateTimeConverter conv = new LocalDateTimeConverter();
-        LocalDateTime value = conv.convert("2007-12-03T10:15:30");
+        LocalDateTime value = conv.convert("2007-12-03T10:15:30", context);
         
assertThat(LocalDateTime.parse("2007-12-03T10:15:30")).isEqualTo(value);
-        value = conv.convert("foo");
+        value = conv.convert("foo", context);
         assertThat(value).isNull();
     }
 
@@ -60,10 +60,10 @@ public class LocalDateTimeConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(LocalDateTime.class)).build();
-        ConversionContext.set(context);
+
         LocalDateTimeConverter converter = new LocalDateTimeConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().toString().contains(" 
(LocalDateTimeConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalTimeConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalTimeConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalTimeConverterTest.java
index 876f3fb..952d630 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalTimeConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LocalTimeConverterTest.java
@@ -41,9 +41,9 @@ public class LocalTimeConverterTest {
     @Test
     public void convert() throws Exception {
         LocalTimeConverter conv = new LocalTimeConverter();
-        LocalTime value = conv.convert("10:15:30");
+        LocalTime value = conv.convert("10:15:30", context);
         assertThat(LocalTime.parse("10:15:30")).isEqualTo(value);
-        value = conv.convert("foo");
+        value = conv.convert("foo", context);
         assertThat(value).isNull();
     }
 
@@ -60,10 +60,10 @@ public class LocalTimeConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(LocalTime.class)).build();
-        ConversionContext.set(context);
+
         LocalTimeConverter converter = new LocalTimeConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().toString().contains(" 
(LocalTimeConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LongConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LongConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LongConverterTest.java
index 6f7b88c..6d9a256 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LongConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/LongConverterTest.java
@@ -120,10 +120,10 @@ public class LongConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Long.class)).build();
-        ConversionContext.set(context);
+
         LongConverter converter = new LongConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().contains("<long> 
(LongConverter)")).isTrue();
         assertThat(context.getSupportedFormats().contains("MIN_VALUE 
(LongConverter)")).isTrue();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/NumberConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/NumberConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/NumberConverterTest.java
index f57fd81..f9bd9c4 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/NumberConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/NumberConverterTest.java
@@ -152,10 +152,10 @@ public class NumberConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Number.class)).build();
-        ConversionContext.set(context);
+
         NumberConverter converter = new NumberConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().contains("<double>, <long> 
(NumberConverter)")).isTrue();
         assertThat(context.getSupportedFormats().contains("POSITIVE_INFINITY 
(NumberConverter)")).isTrue();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverterTest.java
index 9d6c966..1ca9b92 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetDateTimeConverterTest.java
@@ -41,9 +41,9 @@ public class OffsetDateTimeConverterTest {
     @Test
     public void convert() throws Exception {
         OffsetDateTimeConverter conv = new OffsetDateTimeConverter();
-        OffsetDateTime value = conv.convert("2007-12-03T10:15:30+01:00");
+        OffsetDateTime value = conv.convert("2007-12-03T10:15:30+01:00", 
context);
         
assertThat(OffsetDateTime.parse("2007-12-03T10:15:30+01:00")).isEqualTo(value);
-        value = conv.convert("foo");
+        value = conv.convert("foo", context);
         assertThat(value).isNull();
     }
 
@@ -60,10 +60,10 @@ public class OffsetDateTimeConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(OffsetDateTime.class)).build();
-        ConversionContext.set(context);
+
         OffsetDateTimeConverter converter = new OffsetDateTimeConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().toString().contains(" 
(OffsetDateTimeConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverterTest.java
index daf3476..9105dd4 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OffsetTimeConverterTest.java
@@ -41,9 +41,9 @@ public class OffsetTimeConverterTest {
     @Test
     public void convert() throws Exception {
         OffsetTimeConverter conv = new OffsetTimeConverter();
-        OffsetTime value = conv.convert("10:15:30+01:00");
+        OffsetTime value = conv.convert("10:15:30+01:00", context);
         assertThat(OffsetTime.parse("10:15:30+01:00")).isEqualTo(value);
-        value = conv.convert("foo");
+        value = conv.convert("foo", context);
         assertThat(value).isNull();
     }
 
@@ -60,10 +60,10 @@ public class OffsetTimeConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(OffsetTime.class)).build();
-        ConversionContext.set(context);
+
         OffsetTimeConverter converter = new OffsetTimeConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().toString().contains(" 
(OffsetTimeConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OptionalConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OptionalConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OptionalConverterTest.java
index 80c8cda..4f73cd5 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OptionalConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/OptionalConverterTest.java
@@ -21,26 +21,32 @@ package org.apache.tamaya.core.internal.converters;
 import java.util.List;
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
+import org.apache.tamaya.spi.FilterContext;
 import org.junit.Test;
 
 import java.util.Optional;
 
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+
 import static org.assertj.core.api.Assertions.*;
 
 public class OptionalConverterTest {
 
     @Test
     public void nullConversionYieldsEmptyOptional() {
-        final Optional<?> result = new OptionalConverter().convert(null);
+        ConversionContext context = Mockito.mock(ConversionContext.class);
+        final Optional<?> result = new OptionalConverter().convert(null, 
context);
         assertThat(result).isNotNull();
         assertThat(result.isPresent()).isFalse();
     }
 
     @Test(expected = ConfigException.class)
     public void emulateExceptionWhenGivenContextIsNull() {
-        new OptionalConverter().convert("JustATestValueThatIsIgnored");
+        ConversionContext context = Mockito.mock(ConversionContext.class);
+        new OptionalConverter().convert("JustATestValueThatIsIgnored", 
context);
     }
 
     @Test
@@ -48,9 +54,9 @@ public class OptionalConverterTest {
         TypeLiteral<List<String>> listOfStringTypeLiteral = new 
TypeLiteral<List<String>>() {
         };
         ConversionContext context = new 
ConversionContext.Builder("testOptionalString", 
listOfStringTypeLiteral).build();
-        ConversionContext.set(context);
-        final Optional<String> result = new 
OptionalConverter().convert("astring");
-        ConversionContext.reset();
+
+        final Optional<String> result = new 
OptionalConverter().convert("astring", context);
+
 
         assertThat(result).isNotNull();
         assertThat(result.isPresent()).isTrue();
@@ -64,10 +70,10 @@ public class OptionalConverterTest {
         ConversionContext context = new 
ConversionContext.Builder("testOptionalInteger", listOfIntegerTypeLiteral)
                 .setConfiguration(Configuration.current())
                 .build();
-        ConversionContext.set(context);
 
-        final Optional<Integer> result = new OptionalConverter().convert("11");
-        ConversionContext.reset();
+
+        final Optional<Integer> result = new OptionalConverter().convert("11", 
context);
+
 
         assertThat(result).isNotNull();
         assertThat(result.isPresent()).isTrue();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/PathConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/PathConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/PathConverterTest.java
index 0ecafcb..df01282 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/PathConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/PathConverterTest.java
@@ -42,25 +42,25 @@ public class PathConverterTest {
     @Test
     public void convert() throws Exception {
         PathConverter conv = new PathConverter();
-        Path value = conv.convert("testRoot");
+        Path value = conv.convert("testRoot", context);
         assertThat(Paths.get("testRoot")).isEqualTo(value);
-        value = conv.convert("foo");
+        value = conv.convert("foo", context);
         assertThat(value).isNotNull();
     }
 
     @Test
     public void convertNull() throws Exception {
         PathConverter conv = new PathConverter();
-        Path value = conv.convert(null);
+        Path value = conv.convert(null, context);
         assertThat(value).isNull();
-        value = conv.convert("");
+        value = conv.convert("", context);
         assertThat(value).isNull();
     }
     
     @Test
     public void convertInvalidPath() throws Exception {
         PathConverter conv = new PathConverter();
-        Path value = conv.convert("/invalid:/\u0000");
+        Path value = conv.convert("/invalid:/\u0000", context);
         assertThat(value).isNull();
     }
 
@@ -77,10 +77,10 @@ public class PathConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Path.class)).build();
-        ConversionContext.set(context);
+
         PathConverter converter = new PathConverter();
-        converter.convert("notempty");
-        ConversionContext.reset();
+        converter.convert("notempty", context);
+
 
         assertThat(context.getSupportedFormats().contains("<File> 
(PathConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ShortConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ShortConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ShortConverterTest.java
index 5dec2cf..7dc38e4 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ShortConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ShortConverterTest.java
@@ -121,10 +121,10 @@ public class ShortConverterTest {
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Short.class)).build();
-        ConversionContext.set(context);
+
         ShortConverter converter = new ShortConverter();
-        converter.convert("");
-        ConversionContext.reset();
+        converter.convert("", context);
+
 
         assertThat(context.getSupportedFormats().contains("short 
(ShortConverter)")).isTrue();
         assertThat(context.getSupportedFormats().contains("MIN_VALUE 
(ShortConverter)")).isTrue();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/SupplierConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/SupplierConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/SupplierConverterTest.java
index 0fd0585..549b287 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/SupplierConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/SupplierConverterTest.java
@@ -45,14 +45,14 @@ public class SupplierConverterTest {
         Supplier<String> stringResult;
         TypeLiteral listStringTypeLiteral = new TypeLiteral<List<String>> () 
{};
         ConversionContext context = new 
ConversionContext.Builder(listStringTypeLiteral).build();
-        ConversionContext.set(context);
-        stringResult = instance.convert(null);
+
+        stringResult = instance.convert(null, context);
         assertThat(stringResult.get()).isNull();
         
-        stringResult = instance.convert("aString");
+        stringResult = instance.convert("aString", context);
         assertThat(stringResult.get()).isEqualTo("aString");
 
-        ConversionContext.reset();
+
 
         Supplier<InetAddress> addressResult;
         
@@ -63,11 +63,10 @@ public class SupplierConverterTest {
         ConversionContext myConverterContext = new 
ConversionContext.Builder(myConverterTypeLiteral)
                 .setConfiguration(mockConfig)
                 .build();
-        ConversionContext.set(myConverterContext);
-        addressResult = instance.convert("someKey");
+        addressResult = instance.convert("someKey", myConverterContext);
 
         assertThat(addressResult.get() instanceof InetAddress).isTrue();
-        ConversionContext.reset();
+
 
 }
         
@@ -89,7 +88,7 @@ public class SupplierConverterTest {
     private class MyConverter<T extends InetAddress> implements 
PropertyConverter<InetAddress> {
 
         @Override
-        public InetAddress convert(String value) {
+        public InetAddress convert(String value, ConversionContext ctx) {
             return Mockito.mock(InetAddress.class);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URIConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URIConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URIConverterTest.java
index 7839233..b653c2a 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URIConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URIConverterTest.java
@@ -38,47 +38,47 @@ public class URIConverterTest {
     @Test
     public void testConvert_URI() throws Exception {
         URIConverter converter = new URIConverter();
-         assertThat(new 
URI("test:path")).isEqualTo(converter.convert("test:path"));
+         assertThat(new 
URI("test:path")).isEqualTo(converter.convert("test:path", context));
     }
 
     @Test
     public void testConvert_URI_WithSpaces() throws Exception {
         URIConverter converter = new URIConverter();
-        assertThat(new URI("test:path")).isEqualTo(converter.convert("  
test:path\t"));
+        assertThat(new URI("test:path")).isEqualTo(converter.convert("  
test:path\t", context));
     }
 
     @Test
     public void testConvert_URI_WithSpacesBefore() throws Exception {
         URIConverter converter = new URIConverter();
-        assertThat(new URI("test:path")).isEqualTo(converter.convert("  
test:path"));
+        assertThat(new URI("test:path")).isEqualTo(converter.convert("  
test:path", context));
     }
 
     @Test
     public void testConvert_URI_WithSpacesAfter() throws Exception {
         URIConverter converter = new URIConverter();
-        assertThat(new 
URI("test:path")).isEqualTo(converter.convert("test:path  "));
+        assertThat(new 
URI("test:path")).isEqualTo(converter.convert("test:path  ", context));
     }
 
     @Test
     public void testConvert_NotPresent() throws Exception {
         URIConverter converter = new URIConverter();
-        assertThat(converter.convert("")).isNull();
-        assertThat(converter.convert(null)).isNull();
+        assertThat(converter.convert("", context)).isNull();
+        assertThat(converter.convert(null, context)).isNull();
     }
     
     @Test
     public void testConvert_URIInvalid() throws ConfigException {
         URIConverter converter = new URIConverter();
-        assertThat(converter.convert("not a uri")).isNull();
+        assertThat(converter.convert("not a uri", context)).isNull();
     }
 
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(URI.class)).build();
-        ConversionContext.set(context);
+
         URIConverter converter = new URIConverter();
-        converter.convert("test:path");
-        ConversionContext.reset();
+        converter.convert("test:path", context);
+
 
         assertThat(context.getSupportedFormats().contains("<uri> -> new 
URI(uri) (URIConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URLConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URLConverterTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URLConverterTest.java
index dcea40d..0b39671 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URLConverterTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/URLConverterTest.java
@@ -39,47 +39,47 @@ public class URLConverterTest {
     @Test
     public void testConvert_URL() throws Exception {
         URLConverter converter = new URLConverter();
-        assertThat(new 
URL("http://apache.org:4000/path";)).isEqualTo(converter.convert("http://apache.org:4000/path";));
+        assertThat(new 
URL("http://apache.org:4000/path";)).isEqualTo(converter.convert("http://apache.org:4000/path";,
 context));
     }
 
     @Test
     public void testConvert_URL_WithSpaces() throws Exception {
         URLConverter converter = new URLConverter();
-        assertThat(new 
URL("http://apache.org:4000/path";)).isEqualTo(converter.convert("  
http://apache.org:4000/path\t";));
+        assertThat(new 
URL("http://apache.org:4000/path";)).isEqualTo(converter.convert("  
http://apache.org:4000/path\t";, context));
     }
 
     @Test
     public void testConvert_URL_WithSpacesBefore() throws Exception {
         URLConverter converter = new URLConverter();
-        assertThat(new 
URL("http://apache.org:4000/path";)).isEqualTo(converter.convert("  
http://apache.org:4000/path";));
+        assertThat(new 
URL("http://apache.org:4000/path";)).isEqualTo(converter.convert("  
http://apache.org:4000/path";, context));
     }
 
     @Test
     public void testConvert_URL_WithSpacesAfter() throws Exception {
         URLConverter converter = new URLConverter();
-        assertThat(new 
URL("http://apache.org:4000/path";)).isEqualTo(converter.convert("http://apache.org:4000/path
  "));
+        assertThat(new 
URL("http://apache.org:4000/path";)).isEqualTo(converter.convert("http://apache.org:4000/path
  ", context));
     }
 
     @Test
     public void testConvert_NotPresent() throws Exception {
         URLConverter converter = new URLConverter();
-        assertThat(converter.convert("")).isNull();
-        assertThat(converter.convert(null)).isNull();
+        assertThat(converter.convert("", context)).isNull();
+        assertThat(converter.convert(null, context)).isNull();
     }
     
     @Test
     public void testConvert_URLInvalid() throws ConfigException {
         URLConverter converter = new URLConverter();
-        assertThat(converter.convert("not a url")).isNull();
+        assertThat(converter.convert("not a url", context)).isNull();
     }
 
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(URL.class)).build();
-        ConversionContext.set(context);
+
         URLConverter converter = new URLConverter();
-        converter.convert("http://localhost";);
-        ConversionContext.reset();
+        converter.convert("http://localhost";, context);
+
 
         assertThat(context.getSupportedFormats().contains("<URL> 
(URLConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/testdata/TestPropertyFilter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/testdata/TestPropertyFilter.java
 
b/code/core/src/test/java/org/apache/tamaya/core/testdata/TestPropertyFilter.java
index b948601..b8988eb 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/testdata/TestPropertyFilter.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/testdata/TestPropertyFilter.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tamaya.core.testdata;
 
+import org.apache.tamaya.spi.FilterContext;
 import org.apache.tamaya.spi.PropertyFilter;
 import org.apache.tamaya.spi.PropertyValue;
 
@@ -33,7 +34,7 @@ public class TestPropertyFilter implements PropertyFilter{
     private AtomicInteger counter = new AtomicInteger();
 
     @Override
-    public PropertyValue filterProperty(PropertyValue valueToBeFiltered) {
+    public PropertyValue filterProperty(PropertyValue valueToBeFiltered, 
FilterContext context) {
         if("name4".equals(valueToBeFiltered.getKey())){
             return valueToBeFiltered.mutable()
                     .setValue(valueToBeFiltered.getValue() + 
"(filtered"+counter.incrementAndGet()+")");

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/core/src/test/java/org/apache/tamaya/core/testdata/TestRemovingPropertyFilter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/testdata/TestRemovingPropertyFilter.java
 
b/code/core/src/test/java/org/apache/tamaya/core/testdata/TestRemovingPropertyFilter.java
index 1c5365c..7053982 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/testdata/TestRemovingPropertyFilter.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/testdata/TestRemovingPropertyFilter.java
@@ -19,6 +19,7 @@
 package org.apache.tamaya.core.testdata;
 
 import org.apache.tamaya.Configuration;
+import org.apache.tamaya.spi.FilterContext;
 import org.apache.tamaya.spi.PropertyFilter;
 import org.apache.tamaya.spi.PropertyValue;
 
@@ -30,7 +31,7 @@ import javax.annotation.Priority;
 @Priority(200)
 public class TestRemovingPropertyFilter implements PropertyFilter{
     @Override
-    public PropertyValue filterProperty(PropertyValue valueToBeFiltered) {
+    public PropertyValue filterProperty(PropertyValue valueToBeFiltered, 
FilterContext context) {
         if("name5".equals(valueToBeFiltered.getKey())){
             return null;
         }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java
 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java
index 9eb1847..0939128 100644
--- 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java
+++ 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/DefaultConfiguration.java
@@ -218,29 +218,24 @@ public class DefaultConfiguration implements 
Configuration {
             ConversionContext context = new ConversionContext.Builder(this, 
key, type)
                     .setValues(values)
                     .build();
-            try {
-                String value = values.get(0).getValue();
-                ConversionContext.set(context);
-                for (PropertyConverter<T> converter : converters) {
-                    try {
-                        T t = converter.convert(value);
-                        if (t != null) {
-                            return t;
-                        }
-                    } catch (Exception e) {
-                        LOG.log(Level.FINEST, "PropertyConverter: " + 
converter + " failed to convert createValue: " + value, e);
+            String value = values.get(0).getValue();
+            for (PropertyConverter<T> converter : converters) {
+                try {
+                    T t = converter.convert(value, context);
+                    if (t != null) {
+                        return t;
                     }
+                } catch (Exception e) {
+                    LOG.log(Level.FINEST, "PropertyConverter: " + converter + 
" failed to convert createValue: " + value, e);
                 }
-                // if the target type is a String, we can return the 
createValue, no conversion required.
-                if (type.equals(TypeLiteral.of(String.class))) {
-                    return (T) value;
-                }
-                // unsupported type, throw an exception
-                throw new ConfigException("Unparseable config value for type: 
" + type.getRawType().getName() + ": " + key +
-                        ", supported formats: " + 
context.getSupportedFormats());
-            }finally{
-                ConversionContext.reset();
             }
+            // if the target type is a String, we can return the createValue, 
no conversion required.
+            if (type.equals(TypeLiteral.of(String.class))) {
+                return (T) value;
+            }
+            // unsupported type, throw an exception
+            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/bd9901b0/code/spi-support/src/main/java/org/apache/tamaya/spisupport/EnumConverter.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/EnumConverter.java
 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/EnumConverter.java
index 2c0054f..9b06366 100644
--- 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/EnumConverter.java
+++ 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/EnumConverter.java
@@ -52,9 +52,8 @@ public class EnumConverter<T> implements PropertyConverter<T> 
{
     }
 
     @Override
-    public T convert(String value) {
-        ConversionContext.doOptional(ctx ->
-                ctx.addSupportedFormats(getClass(),"<enumValue>"));
+    public T convert(String value, ConversionContext ctx) {
+        ctx.addSupportedFormats(getClass(),"<enumValue>");
         try {
             return (T) factory.invoke(null, value);
         } catch (InvocationTargetException | IllegalAccessException e) {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java
 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java
index 22fe67e..f37ecb3 100644
--- 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java
+++ 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyConverterManager.java
@@ -379,7 +379,7 @@ public class PropertyConverterManager {
             }
             converter = new PropertyConverter<T>() {
                     @Override
-                    public T convert(String value) {
+                    public T convert(String value, ConversionContext context) {
                         AccessController.doPrivileged(new 
PrivilegedAction<Object>() {
                             @Override
                             public Object run() {
@@ -461,11 +461,8 @@ public class PropertyConverterManager {
         }
 
         @Override
-        public T convert(String value) {
-            ConversionContext ctx = ConversionContext.current();
-            if(ctx!=null) {
-                ctx.addSupportedFormats(getClass(), "<String -> " + 
factoryMethod.toGenericString());
-            }
+        public T convert(String value, ConversionContext context) {
+            context.addSupportedFormats(getClass(), "<String -> " + 
factoryMethod.toGenericString());
             if (!Modifier.isStatic(factoryMethod.getModifiers())) {
                 throw new ConfigException(factoryMethod.toGenericString() +
                         " is not a static method. Only static " +

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java
 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java
index 9e63770..8df6a21 100644
--- 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java
+++ 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/PropertyFiltering.java
@@ -65,16 +65,11 @@ public final class PropertyFiltering{
     public static List<PropertyValue> applyFilters(List<PropertyValue> values, 
ConfigurationContext context) {
         List<PropertyValue> result = new ArrayList<>();
         FilterContext filterContext = new FilterContext(values, context);
-        try {
-            FilterContext.set(filterContext);
-            for (PropertyValue val : values) {
-                PropertyValue filtered = filterValue(val, filterContext);
-                if(filtered!=null) {
-                    result.add(filtered);
-                }
+        for (PropertyValue val : values) {
+            PropertyValue filtered = filterValue(val, filterContext);
+            if(filtered!=null) {
+                result.add(filtered);
             }
-        }finally {
-            FilterContext.reset();
         }
         return result;
     }
@@ -90,14 +85,9 @@ public final class PropertyFiltering{
         // Apply filters to values, prevent values filtered to null!
         for (Map.Entry<String, PropertyValue> entry : 
rawProperties.entrySet()) {
             FilterContext filterContext = new FilterContext(entry.getValue(), 
rawProperties, context);
-            try{
-                FilterContext.set(filterContext);
-                PropertyValue filtered = 
filterValue(filterContext.getProperty(), filterContext);
-                if(filtered!=null){
-                    result.put(filtered.getKey(), filtered);
-                }
-            }finally{
-                FilterContext.reset();
+            PropertyValue filtered = filterValue(filterContext.getProperty(), 
filterContext);
+            if(filtered!=null){
+                result.put(filtered.getKey(), filtered);
             }
         }
         return result;
@@ -111,41 +101,36 @@ public final class PropertyFiltering{
     private static PropertyValue filterValue(PropertyValue inputValue, 
FilterContext context) {
         PropertyValue filteredValue = inputValue;
 
-        try {
-            FilterContext.set(context);
-            for (int i = 0; i < MAX_FILTER_LOOPS; i++) {
-                int changes = 0;
-                for (PropertyFilter filter : 
context.current().getPropertyFilters()) {
-                    String value = 
filteredValue!=null?filteredValue.getValue():null;
-                    filteredValue = filter.filterProperty(filteredValue);
-                    String newValue = 
filteredValue!=null?filteredValue.getValue():null;
+        for (int i = 0; i < MAX_FILTER_LOOPS; i++) {
+            int changes = 0;
+            for (PropertyFilter filter : 
context.current().getPropertyFilters()) {
+                String value = 
filteredValue!=null?filteredValue.getValue():null;
+                filteredValue = filter.filterProperty(filteredValue, context);
+                String newValue = 
filteredValue!=null?filteredValue.getValue():null;
 
-                    if (!Objects.equals(value, newValue)) {
-                        changes++;
-                        LOG.finest("Filter - " + filteredValue + " by " + 
filter);
-                    }
-                    if (filteredValue == null) {
-                        LOG.finest("Filter removed entry - " + inputValue + ": 
" + filter);
-                        break;
-                    }
+                if (!Objects.equals(value, newValue)) {
+                    changes++;
+                    LOG.finest("Filter - " + filteredValue + " by " + filter);
                 }
-                if (changes == 0) {
-                    LOG.finest("Finishing filter loop, no changes detected.");
-                    break;
-                } else if (filteredValue == null) {
+                if (filteredValue == null) {
+                    LOG.finest("Filter removed entry - " + inputValue + ": " + 
filter);
                     break;
-                } else {
-                    if (i == (MAX_FILTER_LOOPS - 1)) {
-                        if (LOG.isLoggable(Level.WARNING)) {
-                            LOG.warning("Maximal filter loop count reached, 
aborting filter evaluation after cycles: " + i);
-                        }
-                    } else {
-                        LOG.finest("Repeating filter loop, changes detected: " 
+ changes);
+                }
+            }
+            if (changes == 0) {
+                LOG.finest("Finishing filter loop, no changes detected.");
+                break;
+            } else if (filteredValue == null) {
+                break;
+            } else {
+                if (i == (MAX_FILTER_LOOPS - 1)) {
+                    if (LOG.isLoggable(Level.WARNING)) {
+                        LOG.warning("Maximal filter loop count reached, 
aborting filter evaluation after cycles: " + i);
                     }
+                } else {
+                    LOG.finest("Repeating filter loop, changes detected: " + 
changes);
                 }
             }
-        }finally{
-            FilterContext.reset();
         }
         return filteredValue;
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/main/java/org/apache/tamaya/spisupport/RegexPropertyFilter.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/RegexPropertyFilter.java
 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/RegexPropertyFilter.java
index 39b6cf2..62e7064 100644
--- 
a/code/spi-support/src/main/java/org/apache/tamaya/spisupport/RegexPropertyFilter.java
+++ 
b/code/spi-support/src/main/java/org/apache/tamaya/spisupport/RegexPropertyFilter.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tamaya.spisupport;
 
+import org.apache.tamaya.spi.FilterContext;
 import org.apache.tamaya.spi.PropertyFilter;
 import org.apache.tamaya.spi.PropertyValue;
 
@@ -53,7 +54,7 @@ public final class RegexPropertyFilter implements 
PropertyFilter {
     }
 
     @Override
-    public PropertyValue filterProperty(PropertyValue valueToBeFiltered) {
+    public PropertyValue filterProperty(PropertyValue valueToBeFiltered, 
FilterContext context) {
         if(includes!=null){
             for(String expression:includes){
                 if(valueToBeFiltered.getQualifiedKey().matches(expression)){

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/test/java/org/apache/tamaya/spisupport/CTestConverter.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/CTestConverter.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/CTestConverter.java
index dc13137..14a3f54 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/CTestConverter.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/CTestConverter.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tamaya.spisupport;
 
+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/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationBuilderTest.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationBuilderTest.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationBuilderTest.java
index f2f4aef..9c553bb 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationBuilderTest.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationBuilderTest.java
@@ -99,8 +99,8 @@ public class DefaultConfigurationBuilderTest {
 
     @Test
     public void addRemovePropertyFilters_Array() throws Exception {
-        PropertyFilter filter1 = (value) -> value;
-        PropertyFilter filter2 = (value) -> value;
+        PropertyFilter filter1 = (value, ctx) -> value;
+        PropertyFilter filter2 = (value, ctx) -> value;
         DefaultConfigurationBuilder b = new DefaultConfigurationBuilder();
         Configuration cfg = b.addPropertyFilters(filter1, filter2).build();
         ConfigurationContext ctx = cfg.getContext();
@@ -126,8 +126,8 @@ public class DefaultConfigurationBuilderTest {
 
     @Test
     public void addRemovePropertyFilters_Collection() throws Exception {
-        PropertyFilter filter1 = (value) -> value;
-        PropertyFilter filter2 = (value) -> value;
+        PropertyFilter filter1 = (value, ctx) -> value;
+        PropertyFilter filter2 = (value, ctx) -> value;
         DefaultConfigurationBuilder b = new DefaultConfigurationBuilder();
         Configuration cfg = b.addPropertyFilters(Arrays.asList(filter1, 
filter2)).build();
         ConfigurationContext ctx = cfg.getContext();
@@ -291,7 +291,7 @@ public class DefaultConfigurationBuilderTest {
         DefaultConfigurationBuilder b = new DefaultConfigurationBuilder();
         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);
@@ -306,8 +306,8 @@ public class DefaultConfigurationBuilderTest {
 
     @Test
     public void addRemovePropertyConverter_Array() throws Exception {
-        PropertyConverter converter1 = (value) -> value.toLowerCase();
-        PropertyConverter converter2 = (value) -> value.toUpperCase();
+        PropertyConverter converter1 = (value, ctx) -> value.toLowerCase();
+        PropertyConverter converter2 = (value, ctx) -> value.toUpperCase();
         ConfigurationBuilder b = new DefaultConfigurationBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
converter1, converter2);
         Configuration cfg = b.build();
@@ -340,8 +340,8 @@ public class DefaultConfigurationBuilderTest {
 
     @Test
     public void addRemovePropertyConverter_Collection() throws Exception {
-        PropertyConverter converter1 = (value) -> value.toLowerCase();
-        PropertyConverter converter2 = (value) -> value.toUpperCase();
+        PropertyConverter converter1 = (value, ctx) -> value.toLowerCase();
+        PropertyConverter converter2 = (value, ctx) -> value.toUpperCase();
         ConfigurationBuilder b = new DefaultConfigurationBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
Arrays.asList(converter1, converter2));
         Configuration cfg = b.build();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilderTest.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilderTest.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilderTest.java
index 0869e82..9d04350 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilderTest.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/DefaultConfigurationContextBuilderTest.java
@@ -164,8 +164,8 @@ public class DefaultConfigurationContextBuilderTest {
 
     @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 = new 
DefaultConfigurationContextBuilder();
         b.addPropertyFilters(filter1, filter2);
         ConfigurationContext ctx = b.build();
@@ -187,8 +187,8 @@ public class DefaultConfigurationContextBuilderTest {
 
     @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 = new 
DefaultConfigurationContextBuilder();
         b.addPropertyFilters(Arrays.asList(new PropertyFilter[]{filter1, 
filter2}));
         ConfigurationContext ctx = b.build();
@@ -210,8 +210,8 @@ public class DefaultConfigurationContextBuilderTest {
 
     @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 = new 
DefaultConfigurationContextBuilder()
                 .addPropertyFilters(filter1, filter2);
         ConfigurationContext ctx = b.build();
@@ -235,8 +235,8 @@ public class DefaultConfigurationContextBuilderTest {
 
     @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 = new 
DefaultConfigurationContextBuilder()
                 .addPropertyFilters(Arrays.asList(new 
PropertyFilter[]{filter1, filter2}));
         ConfigurationContext ctx = b.build();
@@ -261,7 +261,7 @@ public class DefaultConfigurationContextBuilderTest {
     @Test
     @SuppressWarnings({"rawtypes", "unchecked"})
     public void addPropertyConverters_Array() throws Exception {
-        PropertyConverter converter = (value) -> value.toLowerCase();
+        PropertyConverter converter = (value, ctx) -> value.toLowerCase();
         ConfigurationContextBuilder b = new 
DefaultConfigurationContextBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
converter);
         ConfigurationContext ctx = b.build();
@@ -283,7 +283,7 @@ public class DefaultConfigurationContextBuilderTest {
     @Test
     @SuppressWarnings({"rawtypes", "unchecked"})
     public void addPropertyConverters_Collection() throws Exception {
-        PropertyConverter converter = (value) -> value.toLowerCase();
+        PropertyConverter converter = (value, ctx) -> value.toLowerCase();
         ConfigurationContextBuilder b = new 
DefaultConfigurationContextBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class),
                         Arrays.<PropertyConverter<Object>>asList(new 
PropertyConverter[]{converter}));
@@ -308,7 +308,7 @@ public class DefaultConfigurationContextBuilderTest {
     @Test
     @SuppressWarnings({"rawtypes", "unchecked"})
     public void removePropertyConverters_Type() throws Exception {
-        PropertyConverter converter = (value) -> value.toLowerCase();
+        PropertyConverter converter = (value, ctx) -> value.toLowerCase();
         ConfigurationContextBuilder b = new 
DefaultConfigurationContextBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
converter);
         ConfigurationContext ctx = b.build();
@@ -324,7 +324,7 @@ public class DefaultConfigurationContextBuilderTest {
     @Test
     @SuppressWarnings({"rawtypes", "unchecked"})
     public void removePropertyConverters_Array() throws Exception {
-        PropertyConverter converter = (value) -> value.toLowerCase();
+        PropertyConverter converter = (value, ctx) -> value.toLowerCase();
         ConfigurationContextBuilder b = new 
DefaultConfigurationContextBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
converter);
         ConfigurationContext ctx = b.build();
@@ -340,7 +340,7 @@ public class DefaultConfigurationContextBuilderTest {
     @SuppressWarnings({"rawtypes", "unchecked"})
     @Test
     public void removePropertyConverters_Collection() throws Exception {
-        PropertyConverter converter = (value) -> value.toLowerCase();
+        PropertyConverter converter = (value, ctx) -> value.toLowerCase();
         ConfigurationContextBuilder b = new 
DefaultConfigurationContextBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
Arrays.<PropertyConverter<Object>>asList(new PropertyConverter[]{converter}));
         ConfigurationContext ctx = b.build();
@@ -509,7 +509,7 @@ public class DefaultConfigurationContextBuilderTest {
         ConfigurationContextBuilder b = new 
DefaultConfigurationContextBuilder();
         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);
@@ -541,7 +541,7 @@ public class DefaultConfigurationContextBuilderTest {
     @Test
     public void testRemoveAllFilters() throws Exception {
         ConfigurationContextBuilder b = new 
DefaultConfigurationContextBuilder();
-        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();
@@ -558,12 +558,12 @@ public class DefaultConfigurationContextBuilderTest {
 
     @Test
     public void testResetContext() throws Exception {
-        PropertyConverter converter = (value) -> value.toLowerCase();
+        PropertyConverter converter = (value, ctx) -> value.toLowerCase();
         DefaultConfigurationContextBuilder b = new 
DefaultConfigurationContextBuilder();
         ConfigurationContext empty = b.build();
 
         b = new DefaultConfigurationContextBuilder();
-        b.addPropertyFilters((value) -> value.setValue(toString() + " - "));
+        b.addPropertyFilters((value, ctx) -> value.setValue(toString() + " - 
"));
         b.addPropertySources(new MockedPropertySource());
         b.addPropertyConverters(TypeLiteral.of(String.class), converter);
         ConfigurationContext full = b.build();
@@ -577,7 +577,7 @@ public class DefaultConfigurationContextBuilderTest {
         assertThat(caughtAlreadyBuilt).isTrue();
 
         b = new DefaultConfigurationContextBuilder();
-        b.addPropertyFilters((value) -> value.setValue(toString() + " - "));
+        b.addPropertyFilters((value, ctx) -> value.setValue(toString() + " - 
"));
         b.addPropertySources(new MockedPropertySource());
         b.addPropertyConverters(TypeLiteral.of(String.class), converter);
         b.resetWithConfigurationContext(empty);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EnumConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EnumConverterTest.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EnumConverterTest.java
index ff068d2..22fcf43 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EnumConverterTest.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/EnumConverterTest.java
@@ -43,23 +43,23 @@ public class EnumConverterTest {
 
     @Test
     public void testConversionWithMixedCasing() {
+        ConversionContext ctx = new 
ConversionContext.Builder(TypeLiteral.of(RoundingMode.class)).build();
         for (String input : Arrays.asList(RoundingMode.CEILING.toString(), 
"ceiling", "CeiLinG")) {
-            
assertThat(RoundingMode.CEILING).isEqualTo(testConverter.convert(input));
+            
assertThat(RoundingMode.CEILING).isEqualTo(testConverter.convert(input, ctx));
         }
     }
 
     @Test
     public void testConvert_OtherValue() {
-        assertThat(testConverter.convert("fooBars")).isNull();
+        ConversionContext ctx = new 
ConversionContext.Builder(TypeLiteral.of(RoundingMode.class)).build();
+        assertThat(testConverter.convert("fooBars", ctx)).isNull();
     }
 
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
         ConversionContext context = new ConversionContext.Builder("someKey", 
TypeLiteral.of(Enum.class)).build();
-        ConversionContext.set(context);
         EnumConverter<RoundingMode> converter = new 
EnumConverter<>(RoundingMode.class);
-        converter.convert("fooBars");
-        ConversionContext.reset();;
+        converter.convert("fooBars", context);
         assertThat(context.getSupportedFormats().contains("<enumValue> 
(EnumConverter)")).isTrue();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/test/java/org/apache/tamaya/spisupport/IntegerTestConverter.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/IntegerTestConverter.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/IntegerTestConverter.java
index d028bcc..d863cd6 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/IntegerTestConverter.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/IntegerTestConverter.java
@@ -29,9 +29,8 @@ import org.apache.tamaya.spi.PropertyConverter;
 public class IntegerTestConverter implements PropertyConverter<Integer> {
 
     @Override
-    public Integer convert(String value) {
-        ConversionContext.doOptional(ctx ->
-                ctx.addSupportedFormats(getClass(), "<int>"));
+    public Integer convert(String value, ConversionContext ctx) {
+        ctx.addSupportedFormats(getClass(), "<int>");
         String trimmed = Objects.requireNonNull(value).trim();
         try {
             return Integer.decode(trimmed);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/test/java/org/apache/tamaya/spisupport/MockedPropertyFilter.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/MockedPropertyFilter.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/MockedPropertyFilter.java
index 25b5623..13a5f59 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/MockedPropertyFilter.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/MockedPropertyFilter.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tamaya.spisupport;
 
+import org.apache.tamaya.spi.FilterContext;
 import org.apache.tamaya.spi.PropertyFilter;
 import org.apache.tamaya.spi.PropertyValue;
 
@@ -28,7 +29,7 @@ import org.apache.tamaya.spi.PropertyValue;
 public class MockedPropertyFilter implements PropertyFilter {
 
     @Override
-    public PropertyValue filterProperty(PropertyValue value) {
+    public PropertyValue filterProperty(PropertyValue value, FilterContext 
ctx) {
         if (value.getKey().contains("Filternull")) {
             return null;
         } else {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyConverterManagerTest.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyConverterManagerTest.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyConverterManagerTest.java
index 0db0499..c089e73 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyConverterManagerTest.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyConverterManagerTest.java
@@ -27,6 +27,7 @@ import org.apache.tamaya.spi.ServiceContext;
 import org.apache.tamaya.spi.ServiceContextManager;
 import org.junit.Test;
 
+import java.math.RoundingMode;
 import java.util.List;
 
 import static org.assertj.core.api.Assertions.*;
@@ -57,7 +58,8 @@ public class PropertyConverterManagerTest {
 
         PropertyConverter<MyType> converter = converters.get(0);
 
-        Object result = converter.convert("IN");
+        ConversionContext ctx = new 
ConversionContext.Builder(TypeLiteral.of(String.class)).build();
+        Object result = converter.convert("IN", ctx);
 
         assertThat(result).isNotNull();
         assertThat(result).isInstanceOf(MyType.class);
@@ -73,7 +75,7 @@ public class PropertyConverterManagerTest {
         assertThat(converters).hasSize(1);
 
         PropertyConverter<C> converter = converters.get(0);
-        C result = converter.convert("testDirectConverterMapping");
+        C result = converter.convert("testDirectConverterMapping", null);
 
         assertThat(result).isNotNull();
         assertThat(result).isInstanceOf(C.class);
@@ -91,7 +93,7 @@ public class PropertyConverterManagerTest {
         assertThat(converters).hasSize(1);
 
         PropertyConverter<B> converter = converters.get(0);
-        B result = converter.convert("testDirectSuperclassConverterMapping");
+        B result = converter.convert("testDirectSuperclassConverterMapping", 
null);
 
         assertThat(result).isNotNull();
         assertThat(result).isInstanceOf(C.class);
@@ -119,7 +121,7 @@ public class PropertyConverterManagerTest {
         assertThat(converters).hasSize(1);
 
         PropertyConverter<A> converter = converters.get(0);
-        A result = 
converter.convert("testTransitiveSuperclassConverterMapping");
+        A result = 
converter.convert("testTransitiveSuperclassConverterMapping", null);
 
         assertThat(result).isNotNull();
         assertThat(result).isInstanceOf(C.class);
@@ -135,7 +137,7 @@ public class PropertyConverterManagerTest {
         assertThat(converters).hasSize(1);
 
         PropertyConverter<Readable> converter = converters.get(0);
-        Readable result = converter.convert("testDirectInterfaceMapping");
+        Readable result = converter.convert("testDirectInterfaceMapping", 
null);
 
         assertThat(result).isNotNull();
         assertThat(result).isInstanceOf(C.class);
@@ -151,7 +153,7 @@ public class PropertyConverterManagerTest {
         assertThat(converters).hasSize(1);
 
         PropertyConverter<Runnable> converter = converters.get(0);
-        Runnable result = converter.convert("testTransitiveInterfaceMapping1");
+        Runnable result = converter.convert("testTransitiveInterfaceMapping1", 
null);
 
         assertThat(result).isNotNull();
         assertThat(result).isInstanceOf(C.class);
@@ -167,7 +169,7 @@ public class PropertyConverterManagerTest {
         assertThat(converters).hasSize(1);
 
         PropertyConverter<AutoCloseable> converter = converters.get(0);
-        AutoCloseable result = 
converter.convert("testTransitiveInterfaceMapping2");
+        AutoCloseable result = 
converter.convert("testTransitiveInterfaceMapping2", null);
 
         assertThat(result).isNotNull();
         assertThat(result).isInstanceOf(C.class);
@@ -184,7 +186,8 @@ public class PropertyConverterManagerTest {
         assertThat(converters).hasSize(1);
 
         PropertyConverter<Integer> converter = converters.get(0);
-        Integer result = converter.convert("101");
+        ConversionContext ctx = new 
ConversionContext.Builder(TypeLiteral.of(String.class)).build();
+        Integer result = converter.convert("101", ctx);
 
         assertThat(result).isNotNull();
         assertThat(result).isInstanceOf(Integer.class);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyFilterComparatorTest.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyFilterComparatorTest.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyFilterComparatorTest.java
index ee46ede..34c72c4 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyFilterComparatorTest.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/PropertyFilterComparatorTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tamaya.spisupport;
 
+import org.apache.tamaya.spi.FilterContext;
 import org.apache.tamaya.spi.PropertyFilter;
 import org.apache.tamaya.spi.PropertyValue;
 import org.junit.Test;
@@ -60,14 +61,14 @@ public class PropertyFilterComparatorTest {
 
     @Priority(1)
     private static class PropertyFilterA  implements PropertyFilter {
-        public PropertyValue filterProperty(PropertyValue value) {
+        public PropertyValue filterProperty(PropertyValue value, FilterContext 
context) {
             throw new RuntimeException("Not implemented or look at me!");
         }
     }
 
     @Priority(2)
     private static class PropertyFilterB  implements PropertyFilter {
-        public PropertyValue filterProperty(PropertyValue value) {
+        public PropertyValue filterProperty(PropertyValue value, FilterContext 
context) {
             throw new RuntimeException("Not implemented or look at me!");
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/test/java/org/apache/tamaya/spisupport/RegexPropertyFilterTest.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/RegexPropertyFilterTest.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/RegexPropertyFilterTest.java
index 7e7d64e..7e720b1 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/RegexPropertyFilterTest.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/RegexPropertyFilterTest.java
@@ -18,7 +18,10 @@
  */
 package org.apache.tamaya.spisupport;
 
+import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConfigurationContext;
+import org.apache.tamaya.spi.ConversionContext;
+import org.apache.tamaya.spi.FilterContext;
 import org.apache.tamaya.spi.PropertyValue;
 
 import java.util.HashMap;
@@ -44,29 +47,30 @@ public class RegexPropertyFilterTest {
         map.put(prop1.getKey(), prop1);
         map.put(prop2.getKey(), prop2);
         map.put(prop3.getKey(), prop3);
-        assertThat(filter.filterProperty(prop1)).isEqualTo(prop1);
-        assertThat(filter.filterProperty(prop2)).isNull();
+        FilterContext ctx = new FilterContext(prop1, configContext);
+        assertThat(filter.filterProperty(prop1, ctx)).isEqualTo(prop1);
+        assertThat(filter.filterProperty(prop2, ctx)).isNull();
         assertThat(filter.filterProperty(
-                prop3)).isEqualTo(prop3);
+                prop3, ctx)).isEqualTo(prop3);
         assertThat(filter.filterProperty(
-                prop3)).isEqualTo(prop3);
+                prop3, ctx)).isEqualTo(prop3);
         filter = new RegexPropertyFilter();
         filter.setIncludes("test1.*");
-        assertThat(filter.filterProperty(prop1)).isNotNull();
-        assertThat(filter.filterProperty(prop2)).isNull();
-        assertThat(filter.filterProperty(prop3)).isNotNull();
+        assertThat(filter.filterProperty(prop1, ctx)).isNotNull();
+        assertThat(filter.filterProperty(prop2, ctx)).isNull();
+        assertThat(filter.filterProperty(prop3, ctx)).isNotNull();
         filter = new RegexPropertyFilter();
         filter.setExcludes("test1.*");
-        assertThat(filter.filterProperty(prop1)).isNull();
-        assertThat(filter.filterProperty(prop2)).isEqualTo(prop2);
-        assertThat(filter.filterProperty(prop3)).isNull();
+        assertThat(filter.filterProperty(prop1, ctx)).isNull();
+        assertThat(filter.filterProperty(prop2, ctx)).isEqualTo(prop2);
+        assertThat(filter.filterProperty(prop3, ctx)).isNull();
         
         filter = new RegexPropertyFilter();
         filter.setIncludes("test1.*"); //Includes overrides Excludes
         filter.setExcludes("test1.*");
-        assertThat(filter.filterProperty(prop1)).isNotNull();
-        assertThat(filter.filterProperty(prop2)).isNull();
-        assertThat(filter.filterProperty(prop3)).isNotNull();
+        assertThat(filter.filterProperty(prop1, ctx)).isNotNull();
+        assertThat(filter.filterProperty(prop2, ctx)).isNull();
+        assertThat(filter.filterProperty(prop3, ctx)).isNotNull();
         
         
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/bd9901b0/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnumConverterTest.java
----------------------------------------------------------------------
diff --git 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnumConverterTest.java
 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnumConverterTest.java
index a78a3d6..281652a 100644
--- 
a/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnumConverterTest.java
+++ 
b/code/spi-support/src/test/java/org/apache/tamaya/spisupport/propertysource/EnumConverterTest.java
@@ -38,21 +38,21 @@ public class EnumConverterTest {
 
     @Test
     public void testConvert() {
-        
assertThat(testConverter.convert(RoundingMode.CEILING.toString())).isEqualTo(RoundingMode.CEILING);
+        assertThat(testConverter.convert(RoundingMode.CEILING.toString(), 
DUMMY_CONTEXT)).isEqualTo(RoundingMode.CEILING);
     }
 
     @Test
     public void testConvert_LowerCase() {
-        
assertThat(RoundingMode.CEILING).isEqualTo(testConverter.convert("ceiling"));
+        
assertThat(RoundingMode.CEILING).isEqualTo(testConverter.convert("ceiling", 
DUMMY_CONTEXT));
     }
 
     @Test
     public void testConvert_MixedCase()  {
-        
assertThat(RoundingMode.CEILING).isEqualTo(testConverter.convert("CeiLinG"));
+        
assertThat(RoundingMode.CEILING).isEqualTo(testConverter.convert("CeiLinG", 
DUMMY_CONTEXT));
     }
 
     @Test
     public void testConvert_OtherValue() {
-        assertThat(testConverter.convert("fooBars")).isNull();
+        assertThat(testConverter.convert("fooBars", DUMMY_CONTEXT)).isNull();
     }
 }
\ No newline at end of file

Reply via email to