http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 870ddcf..422d9d5 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,11 +36,15 @@ import java.util.Optional;
 public class OptionalConverter implements PropertyConverter<Optional> {
 
     @Override
-    public Optional convert(String value, ConversionContext context) {
+    public Optional convert(String value) {
         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();
             ParameterizedType pt = (ParameterizedType) targetType;
             if(String.class.equals(pt.getActualTypeArguments()[0])){

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 579067a..0ee36c6 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,11 +37,12 @@ public class PathConverter implements 
PropertyConverter<Path> {
     private final Logger LOG = Logger.getLogger(getClass().getName());
 
     @Override
-    public Path convert(String value, ConversionContext context) {
+    public Path convert(String value) {
         if(value==null || value.isEmpty()){
             return null;
         }
-        context.addSupportedFormats(getClass(),"<File>");
+        ConversionContext.doOptional(ctx ->
+                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/e45effd2/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 beda7e7..03296b3 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,8 +50,9 @@ public class ShortConverter implements 
PropertyConverter<Short>{
     private static final Logger LOG = 
Logger.getLogger(ShortConverter.class.getName());
 
     @Override
-    public Short convert(String value, ConversionContext context) {
-        context.addSupportedFormats(getClass(), "short", "MIN", "MIN_VALUE", 
"MAX", "MAX_VALUE");
+    public Short convert(String value) {
+        ConversionContext.doOptional(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/e45effd2/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 0606e83..873499d 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,9 +39,13 @@ public class SupplierConverter implements 
PropertyConverter<Supplier> {
     private static final Logger LOG = 
Logger.getLogger(SupplierConverter.class.getName());
 
     @Override
-    public Supplier convert(String value, ConversionContext context) {
+    public Supplier convert(String value) {
         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/e45effd2/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 2e653f2..d3a77fa 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,11 +36,12 @@ public class URIConverter implements PropertyConverter<URI> 
{
     private final Logger LOG = Logger.getLogger(getClass().getName());
 
     @Override
-    public URI convert(String value, ConversionContext context) {
+    public URI convert(String value) {
         if(value==null || value.isEmpty()){
             return null;
         }
-        context.addSupportedFormats(getClass(), "<uri> -> new URI(uri)");
+        ConversionContext.doOptional(ctx ->
+                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/e45effd2/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 6050c4b..680188b 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,11 +36,12 @@ public class URLConverter implements PropertyConverter<URL> 
{
     private final Logger LOG = Logger.getLogger(getClass().getName());
 
     @Override
-    public URL convert(String value, ConversionContext context) {
+    public URL convert(String value) {
         if(value==null || value.isEmpty()){
             return null;
         }
-        context.addSupportedFormats(getClass(),"<URL>");
+        ConversionContext.doOptional(ctx ->
+                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/e45effd2/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 e91394b..839af9c 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
@@ -23,9 +23,7 @@ import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.core.internal.CoreConfigurationBuilder;
 import org.apache.tamaya.spi.*;
-import org.apache.tamaya.spisupport.DefaultConfigurationContextBuilder;
 import org.junit.Test;
-import sun.security.krb5.Config;
 
 import java.util.Arrays;
 import java.util.Comparator;
@@ -41,7 +39,7 @@ public class ConfigurationBuilderTest {
 
     @Test
     public void setContext() throws Exception {
-        Configuration cfg = ConfigurationProvider.getConfiguration();
+        Configuration cfg = Configuration.current();
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder()
                 .setConfiguration(cfg);
         assertThat(b.build()).isEqualTo(cfg);
@@ -129,8 +127,8 @@ public class ConfigurationBuilderTest {
 
     @Test
     public void addPropertyFilters_Array() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder();
         b.addPropertyFilters(filter1, filter2);
         Configuration cfg = b.build();
@@ -146,8 +144,8 @@ public class ConfigurationBuilderTest {
 
     @Test
     public void addPropertyFilters_Collection() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder();
         b.addPropertyFilters(Arrays.asList(new PropertyFilter[]{filter1, 
filter2}));
         Configuration cfg = b.build();
@@ -163,8 +161,8 @@ public class ConfigurationBuilderTest {
 
     @Test
     public void removePropertyFilters_Array() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder()
                 .addPropertyFilters(filter1, filter2);
         Configuration cfg = b.build();
@@ -184,8 +182,8 @@ public class ConfigurationBuilderTest {
 
     @Test
     public void removePropertyFilters_Collection() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder()
                 .addPropertyFilters(Arrays.asList(new 
PropertyFilter[]{filter1, filter2}));
         Configuration cfg = b.build();
@@ -206,7 +204,7 @@ public class ConfigurationBuilderTest {
     @Test
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public void addPropertyConverters_Array() throws Exception {
-               PropertyConverter converter = (value, context) -> 
value.toLowerCase();
+               PropertyConverter converter = (value) -> value.toLowerCase();
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
converter);
         Configuration cfg = b.build();
@@ -222,7 +220,7 @@ public class ConfigurationBuilderTest {
     @Test
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public void addPropertyConverters_Collection() throws Exception {
-               PropertyConverter converter = (value, context) -> 
value.toLowerCase();
+               PropertyConverter converter = (value) -> value.toLowerCase();
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class),
                         Arrays.<PropertyConverter<Object>>asList(new 
PropertyConverter[]{converter}));
@@ -240,7 +238,7 @@ public class ConfigurationBuilderTest {
     @Test
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public void removePropertyConverters_Array() throws Exception {
-        PropertyConverter converter = (value, context) -> value.toLowerCase();
+        PropertyConverter converter = (value) -> value.toLowerCase();
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
converter);
         Configuration cfg = b.build();
@@ -260,7 +258,7 @@ public class ConfigurationBuilderTest {
     @SuppressWarnings({ "rawtypes", "unchecked" })
        @Test
     public void removePropertyConverters_Collection() throws Exception {
-        PropertyConverter converter = (value, context) -> value.toLowerCase();
+        PropertyConverter converter = (value) -> value.toLowerCase();
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
Arrays.<PropertyConverter<Object>>asList(new PropertyConverter[]{converter}));
         Configuration cfg = b.build();
@@ -398,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, context) -> 
value.toBuilder().setValue(toString() + " - ").build();
+            propertyFilters[i] = (value) -> value.setValue(toString() + " - ");
         }
         b.addPropertyFilters(propertyFilters);
         Comparator<PropertyFilter> pfComp = (o1, o2) -> 
o1.toString().compareTo(o2.toString());
@@ -423,7 +421,7 @@ public class ConfigurationBuilderTest {
     @Test
     public void testRemoveAllFilters() throws Exception {
         ConfigurationBuilder b = 
ConfigurationProvider.getConfigurationBuilder();
-        b.addPropertyFilters((value, context) -> 
value.toBuilder().setValue(toString() + " - ").build());
+        b.addPropertyFilters((value) -> 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/e45effd2/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 70d8381..12c089b 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
@@ -18,6 +18,7 @@
  */
 package org.apache.tamaya.core;
 
+import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.*;
@@ -32,13 +33,14 @@ import static org.assertj.core.api.Assertions.*;
 /**
  * Tests for {@link ConfigurationContextBuilder} by atsticks on 06.09.16.
  */
+@Deprecated
 public class ConfigurationContextBuilderTest {
 
     private TestPropertySource testPropertySource = new TestPropertySource(){};
 
     @Test
     public void setContext() throws Exception {
-        ConfigurationContext context = 
ConfigurationProvider.getConfiguration().getContext();
+        ConfigurationContext context = Configuration.current().getContext();
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder()
                 .setContext(context);
         assertThat(b.build()).isEqualTo(context);
@@ -126,8 +128,8 @@ public class ConfigurationContextBuilderTest {
 
     @Test
     public void addPropertyFilters_Array() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder();
         b.addPropertyFilters(filter1, filter2);
         ConfigurationContext ctx = b.build();
@@ -142,8 +144,8 @@ public class ConfigurationContextBuilderTest {
 
     @Test
     public void addPropertyFilters_Collection() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder();
         b.addPropertyFilters(Arrays.asList(new PropertyFilter[]{filter1, 
filter2}));
         ConfigurationContext ctx = b.build();
@@ -158,8 +160,8 @@ public class ConfigurationContextBuilderTest {
 
     @Test
     public void removePropertyFilters_Array() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder()
                 .addPropertyFilters(filter1, filter2);
         ConfigurationContext ctx = b.build();
@@ -177,8 +179,8 @@ public class ConfigurationContextBuilderTest {
 
     @Test
     public void removePropertyFilters_Collection() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder()
                 .addPropertyFilters(Arrays.asList(new 
PropertyFilter[]{filter1, filter2}));
         ConfigurationContext ctx = b.build();
@@ -197,7 +199,7 @@ public class ConfigurationContextBuilderTest {
     @Test
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public void addPropertyConverters_Array() throws Exception {
-               PropertyConverter converter = (value, context) -> 
value.toLowerCase();
+               PropertyConverter converter = (value) -> value.toLowerCase();
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
converter);
         ConfigurationContext ctx = b.build();
@@ -212,7 +214,7 @@ public class ConfigurationContextBuilderTest {
     @Test
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public void addPropertyConverters_Collection() throws Exception {
-               PropertyConverter converter = (value, context) -> 
value.toLowerCase();
+               PropertyConverter converter = (value) -> value.toLowerCase();
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class),
                         Arrays.<PropertyConverter<Object>>asList(new 
PropertyConverter[]{converter}));
@@ -229,7 +231,7 @@ public class ConfigurationContextBuilderTest {
     @Test
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public void removePropertyConverters_Array() throws Exception {
-        PropertyConverter converter = (value, context) -> value.toLowerCase();
+        PropertyConverter converter = (value) -> value.toLowerCase();
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
converter);
         ConfigurationContext ctx = b.build();
@@ -246,7 +248,7 @@ public class ConfigurationContextBuilderTest {
     @SuppressWarnings({ "rawtypes", "unchecked" })
        @Test
     public void removePropertyConverters_Collection() throws Exception {
-        PropertyConverter converter = (value, context) -> value.toLowerCase();
+        PropertyConverter converter = (value) -> value.toLowerCase();
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
Arrays.<PropertyConverter<Object>>asList(new PropertyConverter[]{converter}));
         ConfigurationContext ctx = b.build();
@@ -381,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, context) -> 
value.toBuilder().setValue(toString() + " - ").build();
+            propertyFilters[i] = (value) -> value.setValue(toString() + " - ");
         }
         b.addPropertyFilters(propertyFilters);
         Comparator<PropertyFilter> pfComp = (o1, o2) -> 
o1.toString().compareTo(o2.toString());
@@ -405,7 +407,7 @@ public class ConfigurationContextBuilderTest {
     @Test
     public void testRemoveAllFilters() throws Exception {
         ConfigurationContextBuilder b = 
ConfigurationProvider.getConfigurationContextBuilder();
-        b.addPropertyFilters((value, context) -> 
value.toBuilder().setValue(toString() + " - ").build());
+        b.addPropertyFilters((value) -> 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/e45effd2/code/core/src/test/java/org/apache/tamaya/core/ConfigurationTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/ConfigurationTest.java 
b/code/core/src/test/java/org/apache/tamaya/core/ConfigurationTest.java
index b510e6b..c5f48b0 100644
--- a/code/core/src/test/java/org/apache/tamaya/core/ConfigurationTest.java
+++ b/code/core/src/test/java/org/apache/tamaya/core/ConfigurationTest.java
@@ -19,7 +19,6 @@
 package org.apache.tamaya.core;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.junit.Test;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -35,7 +34,7 @@ public class ConfigurationTest {
     }
 
     private Configuration current() {
-        return ConfigurationProvider.getConfiguration();
+        return Configuration.current();
     }
 
     @Test
@@ -43,13 +42,14 @@ public class ConfigurationTest {
         assertThat(current().get("name")).isNotNull();
         assertThat(current().get("name2")).isNotNull(); // from default
         assertThat(current().get("name3")).isNotNull(); // overridden default, 
mapped by filter to name property
-        assertThat(current().get("name4")).isNotNull(); // final only
+        String value4 = current().get("name4");
+        assertThat(value4).isNotNull(); // final only
 
 
         assertThat(current().get("name")).isEqualTo("Robin");
         assertThat(current().get("name2")).isEqualTo("Sabine"); // from default
         assertThat(current().get("name3")).isEqualTo("Mapped to name: Robin"); 
 // overridden default, mapped by filter to name property
-        
assertThat(current().get("name4")).isEqualTo("Sereina(filtered)(filtered)(filtered)(filtered)(filtered)(filtered)(filtered)(filtered)(filtered)(filtered)");
 // final only
+        
assertThat(value4).isEqualTo("Sereina(filtered1)(filtered2)(filtered3)(filtered4)(filtered5)(filtered6)(filtered7)(filtered8)(filtered9)(filtered10)");
 // final only
         assertThat(current().get("name5")).isNull(); // final only, but 
removed from filter
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/code/core/src/test/java/org/apache/tamaya/core/OSGIActivatorTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/OSGIActivatorTest.java 
b/code/core/src/test/java/org/apache/tamaya/core/OSGIActivatorTest.java
index 5de16ab..f9cbbdb 100644
--- a/code/core/src/test/java/org/apache/tamaya/core/OSGIActivatorTest.java
+++ b/code/core/src/test/java/org/apache/tamaya/core/OSGIActivatorTest.java
@@ -41,8 +41,8 @@ public class OSGIActivatorTest {
 
     @Before
     public void setUp() throws Exception {
-        prevServiceContext = ServiceContextManager.getServiceContext();
-        prevConfiguration = ConfigurationProvider.getConfiguration();
+        prevServiceContext = 
ServiceContextManager.getServiceContext(getClass().getClassLoader());
+        prevConfiguration = Configuration.current();
     }
 
     @After
@@ -68,8 +68,8 @@ public class OSGIActivatorTest {
         //Start
         instance.start(mockBundleContext);
         assertThat(mockBundleContext.getBundleListenersCount()).isEqualTo(1);
-        
assertThat(ConfigurationProvider.getConfiguration().getContext().getPropertyConverters().isEmpty()).isFalse();
-        
assertThat(ConfigurationProvider.getConfiguration()).isNotSameAs(prevConfiguration);
+        
assertThat(Configuration.current().getContext().getPropertyConverters().isEmpty()).isFalse();
+        assertThat(Configuration.current()).isNotSameAs(prevConfiguration);
 
         //Stop
         instance.stop(mockBundleContext);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/code/core/src/test/java/org/apache/tamaya/core/TestPropertySource.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/TestPropertySource.java 
b/code/core/src/test/java/org/apache/tamaya/core/TestPropertySource.java
index 7ec4458..be1b45a 100644
--- a/code/core/src/test/java/org/apache/tamaya/core/TestPropertySource.java
+++ b/code/core/src/test/java/org/apache/tamaya/core/TestPropertySource.java
@@ -54,10 +54,10 @@ public class TestPropertySource implements PropertySource {
 
     @Override
     public PropertyValue get(String key) {
-        return PropertyValue.builder(key, key + "Value", getName())
-                .addMetaEntry("ordinal", String.valueOf(getOrdinal()))
-                .addMetaEntry("createdAt", String.valueOf(new Date()))
-                .build();
+        return PropertyValue.create(key, key + "Value")
+                .setMeta("source", getName())
+                .setMeta("ordinal", String.valueOf(getOrdinal()))
+                .setMeta("createdAt", String.valueOf(new Date()));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/code/core/src/test/java/org/apache/tamaya/core/internal/BannerManagerTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/BannerManagerTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/BannerManagerTest.java
index 9fc4433..2024723 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/BannerManagerTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/BannerManagerTest.java
@@ -29,7 +29,7 @@ import java.security.Permission;
 /*
  * Note:
  * The tests of this class will fail PIT, our coverage tool.
- * Therefore we excluded this class in the parent POM
+ * Therefore we excluded this class in the getParent POM
  * from the test execution.
  * Oliver B. Fischer, 2017-09-16
  */

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/code/core/src/test/java/org/apache/tamaya/core/internal/C.java
----------------------------------------------------------------------
diff --git a/code/core/src/test/java/org/apache/tamaya/core/internal/C.java 
b/code/core/src/test/java/org/apache/tamaya/core/internal/C.java
index fdd3476..4b4609b 100644
--- a/code/core/src/test/java/org/apache/tamaya/core/internal/C.java
+++ b/code/core/src/test/java/org/apache/tamaya/core/internal/C.java
@@ -38,7 +38,7 @@ public class C extends B implements Readable{
     }
 
     /**
-     * Returns the input value, set on creation. Used for test assertion.
+     * Returns the input value, setCurrent on creation. Used for test 
assertion.
      * @return the in value.
      */
     public String getInValue() {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 7ee2a35..62b8c9d 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,7 +18,6 @@
  */
 package org.apache.tamaya.core.internal;
 
-import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
 /**
@@ -26,7 +25,7 @@ import org.apache.tamaya.spi.PropertyConverter;
  */
 public class CTestConverter implements PropertyConverter<C>{
     @Override
-    public C convert(String value, ConversionContext context) {
+    public C convert(String value) {
         return new C(value);
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 7151a41..8dabcfd 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
@@ -34,7 +34,6 @@ import org.junit.Test;
 import java.util.Collections;
 import java.util.Currency;
 import java.util.Map;
-import org.apache.tamaya.core.internal.converters.BigDecimalConverter;
 
 import static org.assertj.core.api.Assertions.*;
 
@@ -47,7 +46,7 @@ public class CoreConfigurationBuilderTest {
 
     @Test
     public void setContext() throws Exception {
-        ConfigurationContext context = 
ConfigurationProvider.getConfiguration().getContext();
+        ConfigurationContext context = Configuration.current().getContext();
         ConfigurationBuilder b = new CoreConfigurationBuilder()
                 .setContext(context);
         assertThat(b.build().getContext()).isEqualTo(context);
@@ -55,7 +54,7 @@ public class CoreConfigurationBuilderTest {
 
     @Test
     public void setConfiguration() throws Exception {
-        Configuration cfg = ConfigurationProvider.getConfiguration();
+        Configuration cfg = Configuration.current();
         ConfigurationBuilder b = new CoreConfigurationBuilder()
                 .setConfiguration(cfg);
         assertThat(b.build()).isEqualTo(cfg);
@@ -96,8 +95,8 @@ public class CoreConfigurationBuilderTest {
 
     @Test
     public void addPropertyFilters_Array() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         CoreConfigurationBuilder b = new CoreConfigurationBuilder();
         b.addPropertyFilters(filter1, filter2);
         Configuration cfg = b.build();
@@ -113,8 +112,8 @@ public class CoreConfigurationBuilderTest {
 
     @Test
     public void removePropertyFilters_Array() throws Exception {
-        PropertyFilter filter1 = (value, context) -> value;
-        PropertyFilter filter2 = (value, context) -> value;
+        PropertyFilter filter1 = (value) -> value;
+        PropertyFilter filter2 = (value) -> value;
         ConfigurationBuilder b = new CoreConfigurationBuilder()
                 .addPropertyFilters(filter1, filter2);
         Configuration cfg = b.build();
@@ -135,7 +134,7 @@ public class CoreConfigurationBuilderTest {
     @Test
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public void addPropertyConverter() throws Exception {
-               PropertyConverter converter = (value, context) -> 
value.toLowerCase();
+               PropertyConverter converter = (value) -> value.toLowerCase();
                ConfigurationBuilder b = new CoreConfigurationBuilder()
                 .addPropertyConverters(TypeLiteral.of(String.class), 
converter);
         Configuration cfg = b.build();
@@ -151,7 +150,7 @@ public class CoreConfigurationBuilderTest {
     @Test
     @SuppressWarnings({ "rawtypes", "unchecked" })
     public void removePropertyConverters_Array() throws Exception {
-        PropertyConverter converter = (value, context) -> value.toLowerCase();
+        PropertyConverter converter = (value) -> 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/e45effd2/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationProviderTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationProviderTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationProviderTest.java
index 5673f90..8e5cac0 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationProviderTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/CoreConfigurationProviderTest.java
@@ -35,7 +35,7 @@ public class CoreConfigurationProviderTest {
 
     @Test
     public void getConfiguration() throws Exception {
-        assertThat(new 
CoreConfigurationProvider().getConfiguration()).isNotNull();
+        assertThat(new 
CoreConfigurationProvider().getConfiguration(getClass().getClassLoader())).isNotNull();
     }
 
     @Test
@@ -48,7 +48,8 @@ public class CoreConfigurationProviderTest {
     @Test
     public void getConfigurationContext() throws Exception {
         assertThat(new 
CoreConfigurationProvider().getConfigurationContext()).isNotNull();
-        assertThat(new 
CoreConfigurationProvider().getConfigurationContext()).isEqualTo(new 
CoreConfigurationProvider().getConfiguration().getContext());
+        assertThat(new 
CoreConfigurationProvider().getConfigurationContext()).isEqualTo(
+                new 
CoreConfigurationProvider().getConfiguration(getClass().getClassLoader()).getContext());
     }
 
     @Test
@@ -65,14 +66,19 @@ public class CoreConfigurationProviderTest {
        @Test
     public void setConfigurationContext() throws Exception {
         new CoreConfigurationProvider()
-                .setConfigurationContext(new 
CoreConfigurationProvider().getConfiguration().getContext());
+                .setConfigurationContext(new 
CoreConfigurationProvider().getConfiguration(
+                        getClass().getClassLoader()
+                ).getContext());
     }
 
     @SuppressWarnings("deprecation")
     @Test
     public void setConfiguration() throws Exception {
         new CoreConfigurationProvider()
-                .setConfiguration(new 
CoreConfigurationProvider().getConfiguration());
+                .setConfiguration(new 
CoreConfigurationProvider().getConfiguration(
+                        getClass().getClassLoader()),
+                        getClass().getClassLoader()
+                );
     }
 
     @SuppressWarnings("deprecation")
@@ -84,7 +90,9 @@ public class CoreConfigurationProviderTest {
     @SuppressWarnings("deprecation")
     @Test
     public void isConfigurationSettable() throws Exception {
-        assertThat(new 
CoreConfigurationProvider().isConfigurationSettable()).isTrue();
+        assertThat(new CoreConfigurationProvider().isConfigurationSettable(
+                getClass().getClassLoader()
+        )).isTrue();
     }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 2b30228..291bc46 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
@@ -19,7 +19,6 @@
 package org.apache.tamaya.core.internal;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.core.testdata.TestPropertyDefaultSource;
 import org.apache.tamaya.spi.*;
@@ -43,7 +42,7 @@ public class CoreConfigurationTest {
 
     @Test
     public void testToString() throws Exception {
-        String toString = 
ConfigurationProvider.getConfiguration().getContext().toString();
+        String toString = Configuration.current().getContext().toString();
     }
 
     @Test
@@ -88,7 +87,7 @@ public class CoreConfigurationTest {
         Configuration cfg = new CoreConfigurationBuilder().build();
         PropertyConverter testConverter = new PropertyConverter() {
             @Override
-            public Object convert(String value, ConversionContext context) {
+            public Object convert(String value) {
                 return "";
             }
         };
@@ -102,7 +101,7 @@ public class CoreConfigurationTest {
         Configuration cfg = new CoreConfigurationBuilder().build();
         PropertyConverter testConverter = new PropertyConverter() {
             @Override
-            public Object convert(String value, ConversionContext context) {
+            public Object convert(String value) {
                 return "";
             }
         };
@@ -112,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, ConversionContext context) {
+            public Object convert(String value) {
                 return Integer.valueOf(5);
             }
         };
@@ -126,7 +125,7 @@ public class CoreConfigurationTest {
         Configuration cfg = new CoreConfigurationBuilder().build();
         PropertyConverter testConverter = new PropertyConverter() {
             @Override
-            public Object convert(String value, ConversionContext context) {
+            public Object convert(String value) {
                 return "";
             }
         };
@@ -145,7 +144,7 @@ public class CoreConfigurationTest {
         PropertyFilter testFilter = new PropertyFilter() {
 
             @Override
-            public PropertyValue filterProperty(PropertyValue value, 
FilterContext context) {
+            public PropertyValue filterProperty(PropertyValue value) {
                 return value;
             }
         };

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/code/core/src/test/java/org/apache/tamaya/core/internal/OSGIServiceContextTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/OSGIServiceContextTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/OSGIServiceContextTest.java
index f3c92bb..3ffbff8 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/OSGIServiceContextTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/OSGIServiceContextTest.java
@@ -100,7 +100,7 @@ public class OSGIServiceContextTest {
         mockBundleContext.installBundle(startedBundle);
         OSGIServiceContext instance = new OSGIServiceContext(loader);
 
-        Enumeration<URL> resources = instance.getResources("dummy" , 
ClassLoader.getSystemClassLoader());
+        Enumeration<URL> resources = instance.getResources("dummy");
         assertThat(resources).isNotNull();
         URL resource = (URL)resources.nextElement();
         
assertThat(resource.toString().contains("mockbundle.service")).isTrue();
@@ -121,7 +121,7 @@ public class OSGIServiceContextTest {
         mockBundleContext.installBundle(startedBundle);
         OSGIServiceContext instance = new OSGIServiceContext(loader);
 
-        URL resource = instance.getResource("mockbundle.service", 
ClassLoader.getSystemClassLoader());
+        URL resource = instance.getResource("mockbundle.service");
         assertThat(resource).isNotNull();
         
assertThat(resource.toString().contains("mockbundle.service")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 6d81946..31e0bc5 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
@@ -19,7 +19,6 @@
 package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.spi.ConversionContext;
 import org.junit.Test;
 
@@ -42,7 +41,7 @@ public class BigDecimalConverterTest {
         */
        @Test
        public void testConvert_BigDecimal_Decimal() throws Exception {
-               Configuration config = ConfigurationProvider.getConfiguration();
+               Configuration config = Configuration.current();
                BigDecimal valueRead = config.get("tests.converter.bd.decimal", 
BigDecimal.class);
                assertThat(valueRead).isNotNull();
                assertThat(valueRead).isEqualTo(new BigDecimal(101));
@@ -56,7 +55,7 @@ public class BigDecimalConverterTest {
         */
        @Test
        public void testConvert_BigDecimal_Hex() throws Exception {
-               Configuration config = ConfigurationProvider.getConfiguration();
+               Configuration config = Configuration.current();
                BigDecimal valueRead = 
config.get("tests.converter.bd.hex.lowerX", BigDecimal.class);
                assertThat(valueRead).isNotNull();
                assertThat(valueRead).isEqualTo(new BigDecimal("47"));
@@ -79,7 +78,7 @@ public class BigDecimalConverterTest {
         */
        @Test
        public void testConvert_NotPresent() throws Exception {
-               Configuration config = ConfigurationProvider.getConfiguration();
+               Configuration config = Configuration.current();
                BigDecimal valueRead = config.get("tests.converter.bd.foo", 
BigDecimal.class);
                assertThat(valueRead).isNull();
        }
@@ -92,7 +91,7 @@ public class BigDecimalConverterTest {
         */
        @Test
        public void testConvert_BigDecimal_BigValue() throws Exception {
-               Configuration config = ConfigurationProvider.getConfiguration();
+               Configuration config = Configuration.current();
                BigDecimal valueRead = config.get("tests.converter.bd.big", 
BigDecimal.class);
                assertThat(valueRead).isNotNull();
                assertThat(new 
BigDecimal("101666666666666662333337263723628763821638923628193612983618293628763"))
@@ -107,7 +106,7 @@ public class BigDecimalConverterTest {
         */
        @Test
        public void testConvert_BigDecimal_BigFloatValue() throws Exception {
-               Configuration config = ConfigurationProvider.getConfiguration();
+               Configuration config = Configuration.current();
                BigDecimal valueRead = 
config.get("tests.converter.bd.bigFloat", BigDecimal.class);
                assertThat(valueRead).isNotNull();
                assertThat(new 
BigDecimal("1016666666666666623333372637236287638216389293628763.1016666666666666623333372"
@@ -120,7 +119,7 @@ public class BigDecimalConverterTest {
                ConversionContext context = mock(ConversionContext.class);
 
                BigDecimalConverter converter = new BigDecimalConverter();
-               BigDecimal value = converter.convert("", context);
+               BigDecimal value = converter.convert("");
 
                assertThat(value).isNull();
        }
@@ -128,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("", context);
-
+               BigDecimal value = converter.convert("");
+               ConversionContext.reset();
                assertThat(value).isNull();
                verify(context).addSupportedFormats(BigDecimalConverter.class, 
"<bigDecimal> -> new BigDecimal(String)");
        }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 78c5807..845a735 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
@@ -21,12 +21,10 @@ package org.apache.tamaya.core.internal.converters;
 import java.math.BigInteger;
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 import org.junit.Test;
 import static org.assertj.core.api.Assertions.*;
-import org.junit.Ignore;
 import static org.mockito.Mockito.mock;
 
 /**
@@ -43,7 +41,7 @@ public class BigIntegerConverterTest {
      */
     @Test
     public void testConvert_BigInteger_Decimal() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         BigInteger valueRead = config.get("tests.converter.bd.decimal", 
BigInteger.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead).isEqualTo(BigInteger.valueOf(101));
@@ -57,7 +55,7 @@ public class BigIntegerConverterTest {
      */
     @Test
     public void testConvert_BigInteger_Hex() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         BigInteger valueRead = config.get("tests.converter.bd.hex.lowerX", 
BigInteger.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead).isEqualTo(new BigInteger("47"));
@@ -79,10 +77,9 @@ public class BigIntegerConverterTest {
      *
      * @throws Exception
      */
-    @Ignore
     @Test
     public void testConvert_BigInteger_BigHex() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         BigInteger valueRead = config.get("tests.converter.bd.hex.subTenX", 
BigInteger.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead).isEqualTo(new BigInteger("16777215"));
@@ -93,13 +90,13 @@ public class BigIntegerConverterTest {
 
     @Test(expected = ConfigException.class)
     public void badPositiveHex() {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         config.get("tests.converter.bd.hex.badX", BigInteger.class);
     }
 
     @Test(expected = ConfigException.class)
     public void badNegativeHex() {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         config.get("tests.converter.bd.hex.negBadX", BigInteger.class);
     }
 
@@ -111,7 +108,7 @@ public class BigIntegerConverterTest {
      */
     @Test
     public void testConvert_NotPresent() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         BigInteger valueRead = config.get("tests.converter.bd.foo", 
BigInteger.class);
         assertThat(valueRead).isNull();
     }
@@ -124,7 +121,7 @@ public class BigIntegerConverterTest {
      */
     @Test
     public void testConvert_BigInteger_BigValue() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         BigInteger valueRead = config.get("tests.converter.bd.big", 
BigInteger.class);
         assertThat(valueRead).isNotNull();
         assertThat(new 
BigInteger("101666666666666662333337263723628763821638923628193612983618293628763"))
@@ -136,7 +133,7 @@ public class BigIntegerConverterTest {
         ConversionContext context = mock(ConversionContext.class);
 
         BigIntegerConverter converter = new BigIntegerConverter();
-        BigInteger value = converter.convert("", context);
+        BigInteger value = converter.convert("");
 
         assertThat(value).isNull();
     }
@@ -144,9 +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("", context);
-
+        BigInteger value = converter.convert("");
+        ConversionContext.reset();
         assertThat(value).isNull();
         assertThat(context.getSupportedFormats().contains("<bigint> -> new 
BigInteger(bigint) (BigIntegerConverter)")).isTrue();
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 946c0fd..2b33063 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
@@ -22,7 +22,6 @@ import org.apache.tamaya.ConfigException;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 import org.junit.Test;
@@ -40,7 +39,7 @@ public class BooleanConverterTest {
      */
     @Test
     public void testConvert_BooleanTrue() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Boolean valueRead = config.get("tests.converter.boolean.y1", 
Boolean.class);
         assertThat(valueRead).isNotNull();
         assertThat(Boolean.TRUE).isEqualTo(valueRead);
@@ -81,7 +80,7 @@ public class BooleanConverterTest {
      */
     @Test
     public void testConvert_BooleanFalse() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Boolean valueRead = config.get("tests.converter.boolean.y1", 
Boolean.class);
         assertThat(valueRead).isNotNull();
         valueRead = config.get("tests.converter.boolean.n1", Boolean.class);
@@ -126,7 +125,7 @@ public class BooleanConverterTest {
      */
     @Test(expected = ConfigException.class)
     public void testConvert_BooleanInvalid() throws ConfigException {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Boolean valueRead = config.get("tests.converter.boolean.invalid", 
Boolean.class);
         assertThat(valueRead).isNull();
     }
@@ -134,9 +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("", context);
-
+        converter.convert("");
+        ConversionContext.reset();
         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/e45effd2/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 15ca345..610d7d2 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
@@ -20,13 +20,12 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 import org.junit.Test;
 
 import static org.assertj.core.api.Assertions.*;
-import static org.assertj.core.api.Assertions.*;
+
 /**
  * Tests the default converter for bytes.
  */
@@ -39,7 +38,7 @@ public class ByteConverterTest {
      */
     @Test
     public void testConvert_Byte() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Byte valueRead = config.get("tests.converter.byte.decimal", 
Byte.class);
         assertThat(valueRead).isNotNull();
         assertThat(101).isEqualTo(valueRead.byteValue());
@@ -63,7 +62,7 @@ public class ByteConverterTest {
      */
     @Test
     public void testConvert_Byte_MinValue() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Byte valueRead = config.get("tests.converter.byte.min", Byte.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead.byteValue()).isEqualTo(Byte.MIN_VALUE);
@@ -76,7 +75,7 @@ public class ByteConverterTest {
      */
     @Test
     public void testConvert_Byte_MaxValue() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Byte valueRead = config.get("tests.converter.byte.max", Byte.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead.byteValue()).isEqualTo(Byte.MAX_VALUE);
@@ -89,7 +88,7 @@ public class ByteConverterTest {
      */
     @Test(expected = ConfigException.class)
     public void testConvert_ByteInvalid() throws ConfigException {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Byte valueRead = config.get("tests.converter.byte.invalid", 
Byte.class);
         assertThat(valueRead).isNull();
     }
@@ -97,9 +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("", context);
-        
+        converter.convert("");
+        ConversionContext.reset();
         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/e45effd2/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 8c8de46..ecca42a 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
@@ -20,13 +20,11 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 import org.junit.Test;
 
 import static org.assertj.core.api.Assertions.*;
-import static org.assertj.core.api.Assertions.*;
 
 /**
  * Tests conversion of the {@link CharConverter}.
@@ -35,7 +33,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_Character() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.f", 
Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('f').isEqualTo(valueRead.charValue());
@@ -43,7 +41,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_Character_Numeric() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.f-numeric", 
Character.class);
         assertThat(valueRead).isNotNull();
         assertThat((char) 101).isEqualTo(valueRead.charValue());
@@ -51,7 +49,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_Character_Quoted() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.d", 
Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('d').isEqualTo(valueRead.charValue());
@@ -60,7 +58,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_Character_SingleQuote() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.single-quote", 
Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('\'').isEqualTo(valueRead.charValue());
@@ -68,13 +66,13 @@ public class CharConverterTest {
 
     @Test(expected = ConfigException.class)
     public void testConvert_Character_TwoSingleQuotes() throws ConfigException 
{
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         config.get("tests.converter.char.two-single-quotes", Character.class);
     }
 
     @Test
     public void testConvert_Character_ThreeSingleQuotes() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = 
config.get("tests.converter.char.three-single-quotes", Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('\'').isEqualTo(valueRead.charValue());
@@ -82,7 +80,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_Character_WithWhitespace_Before() throws Exception 
{
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.f-before", 
Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('f').isEqualTo(valueRead.charValue());
@@ -90,7 +88,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_Character_WithWhitespace_After() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.f-after", 
Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('f').isEqualTo(valueRead.charValue());
@@ -98,7 +96,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_Character_WithWhitespace_Around() throws Exception 
{
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.f-around", 
Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('f').isEqualTo(valueRead.charValue());
@@ -106,7 +104,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_NotPresent() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.foo", 
Character.class);
         assertThat(valueRead).isNull();
     }
@@ -119,7 +117,7 @@ public class CharConverterTest {
      */
     @Test
     public void testConvert_CharString() throws ConfigException {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.invalid", 
Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('i').isEqualTo(valueRead.charValue()); //Strings return the 
first character
@@ -127,7 +125,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_CharQuotedString() throws ConfigException {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = 
config.get("tests.converter.char.quoted-invalid", Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('i').isEqualTo(valueRead.charValue()); //Strings return the 
first character
@@ -135,7 +133,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_CharUnicode() throws ConfigException {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.あ", 
Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('あ').isEqualTo(valueRead.charValue());
@@ -143,7 +141,7 @@ public class CharConverterTest {
 
     @Test
     public void testConvert_CharUnicodeString() throws ConfigException {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Character valueRead = config.get("tests.converter.char.กขฃคฅ
ฆงจฉช", Character.class);
         assertThat(valueRead).isNotNull();
         assertThat('ก').isEqualTo(valueRead.charValue()); //Strings return 
the first character
@@ -152,9 +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("", context);
-
+        converter.convert("");
+        ConversionContext.reset();
         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/e45effd2/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 f6ca999..d52ffdb 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,42 @@ public class ClassConverterTest {
     @Test
     public void testConvert_Class() throws Exception {
         ClassConverter converter = new ClassConverter();
-        
assertThat(BigDecimal.class).isEqualTo(converter.convert("java.math.BigDecimal",
 context));
+        
assertThat(BigDecimal.class).isEqualTo(converter.convert("java.math.BigDecimal"));
     }
 
     @Test
     public void testConvert_Class_WithSpaces() throws Exception {
         ClassConverter converter = new ClassConverter();
-         assertThat(BigDecimal.class).isEqualTo(converter.convert("  
java.math.BigDecimal\t", context));
+         assertThat(BigDecimal.class).isEqualTo(converter.convert("  
java.math.BigDecimal\t"));
     }
 
     @Test
     public void testConvert_Class_WithSpacesBefore() throws Exception {
         ClassConverter converter = new ClassConverter();
-        assertThat(BigDecimal.class).isEqualTo(converter.convert("  
java.math.BigDecimal", context));
+        assertThat(BigDecimal.class).isEqualTo(converter.convert("  
java.math.BigDecimal"));
     }
 
     @Test
     public void testConvert_Class_WithSpacesAfter() throws Exception {
         ClassConverter converter = new ClassConverter();
-        
assertThat(BigDecimal.class).isEqualTo(converter.convert("java.math.BigDecimal  
", context));
+        
assertThat(BigDecimal.class).isEqualTo(converter.convert("java.math.BigDecimal  
"));
     }
 
     @Test
     public void testConvert_NotPresent() throws Exception {
         ClassConverter converter = new ClassConverter();
-        assertThat(converter.convert("", context)).isNull();
-        assertThat(converter.convert(null, context)).isNull();
+        assertThat(converter.convert("")).isNull();
+        assertThat(converter.convert(null)).isNull();
     }
 
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
-        ConversionContext localcontext = new 
ConversionContext.Builder(TypeLiteral.of(Class.class)).build();
+        ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Class.class)).build();
+        ConversionContext.set(context);
         ClassConverter converter = new ClassConverter();
-        converter.convert("", localcontext);
-
-        
assertThat(localcontext.getSupportedFormats().contains("<fullyQualifiedClassName>
 (ClassConverter)")).isTrue();
+        converter.convert("");
+        ConversionContext.reset();
+        
assertThat(context.getSupportedFormats().contains("<fullyQualifiedClassName> 
(ClassConverter)")).isTrue();
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ConvertQueryTest.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ConvertQueryTest.java
 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ConvertQueryTest.java
index 93687e3..6dc7c3b 100644
--- 
a/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ConvertQueryTest.java
+++ 
b/code/core/src/test/java/org/apache/tamaya/core/internal/converters/ConvertQueryTest.java
@@ -19,7 +19,6 @@
 package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.junit.Test;
 import static org.assertj.core.api.Assertions.*;
@@ -35,7 +34,7 @@ public class ConvertQueryTest {
      */
     @Test
     public void testIntegerQuery() {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         ConvertQuery<Integer> converter = new ConvertQuery<>("101", 
TypeLiteral.of(Integer.class));
         Integer result = converter.query(config);
         assertThat(result.longValue()).isEqualTo(101);
@@ -46,7 +45,7 @@ public class ConvertQueryTest {
      */
     @Test
     public void testConfigUsingIntegerQuery() {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         ConvertQuery<Integer> converter = new ConvertQuery<>("101", 
TypeLiteral.of(Integer.class));
         Integer result = config.query(converter);
         assertThat(result.longValue()).isEqualTo(101);
@@ -57,7 +56,7 @@ public class ConvertQueryTest {
      */
     @Test
     public void testNonGenericQuery() {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
 
         Integer intResult = (Integer) new ConvertQuery("101", 
TypeLiteral.of(Integer.class)).query(config);
         assertThat(intResult.longValue()).isEqualTo(101);
@@ -71,7 +70,7 @@ public class ConvertQueryTest {
      */
     @Test
     public void testNullWithoutSuccess() {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
 
         Integer intResult = (Integer) new ConvertQuery("invalid", 
TypeLiteral.of(Integer.class)).query(config);
         assertThat(intResult).isNull();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 155cf0c..b8cde19 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
@@ -19,7 +19,6 @@
 package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.junit.Test;
 
 import java.util.Currency;
@@ -28,7 +27,6 @@ import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.*;
 
 /**
  * Tests the default converter for currencies.
@@ -48,7 +46,7 @@ public class CurrencyConverterTest {
      */
     @Test
     public void testConvert_Currency_Code_CHF() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Currency valueRead = config.get("tests.converter.currency.code1", 
Currency.class);
         assertThat(valueRead).isNotNull();
         assertThat(Currency.getInstance(CHF)).isEqualTo(valueRead);
@@ -62,7 +60,7 @@ public class CurrencyConverterTest {
      */
     @Test
     public void testConvert_Currency_Code_CHF1() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Currency valueRead = config.get("tests.converter.currency.code2", 
Currency.class);
         assertThat(valueRead).isNotNull();
         assertThat(Currency.getInstance(CHF)).isEqualTo(valueRead);
@@ -76,7 +74,7 @@ public class CurrencyConverterTest {
      */
     @Test
     public void testConvert_Currency_Code_CHF_Whitespace_Before() throws 
Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Currency valueRead = config.get("tests.converter.currency.code3", 
Currency.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead).isEqualTo(Currency.getInstance(CHF));
@@ -90,7 +88,7 @@ public class CurrencyConverterTest {
      */
     @Test
     public void testConvert_Currency_Code_CHF_Whitespace_After() throws 
Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Currency valueRead = config.get("tests.converter.currency.code4", 
Currency.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead).isEqualTo(Currency.getInstance(CHF));
@@ -104,7 +102,7 @@ public class CurrencyConverterTest {
      */
     @Test
     public void testConvert_Currency_Code_CHF_Whitespace_Around() throws 
Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Currency valueRead = config.get("tests.converter.currency.code5", 
Currency.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead).isEqualTo(Currency.getInstance(CHF));
@@ -118,7 +116,7 @@ public class CurrencyConverterTest {
      */
     @Test
     public void testConvert_Currency_Code_Numeric() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Currency valueRead = 
config.get("tests.converter.currency.code-numeric1", Currency.class);
         assertThat(valueRead).isNotNull();
         
assertThat(valueRead.getNumericCode()).isEqualTo(Currency.getInstance(BGL).getNumericCode());
@@ -141,7 +139,7 @@ public class CurrencyConverterTest {
      */
     @Test
     public void testConvert_Currency_Code_Locale() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Currency valueRead = 
config.get("tests.converter.currency.code-locale1", Currency.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead.getCurrencyCode()).isEqualTo(EUR);
@@ -164,7 +162,7 @@ public class CurrencyConverterTest {
      */
     @Test
     public void testConvert_Currency_Code_Multipart_Locale() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Currency valueRead = 
config.get("tests.converter.currency.code-locale-twopart", Currency.class);
         assertThat(valueRead).isNotNull();
         assertThat(valueRead.getCurrencyCode()).isEqualTo(JPY);
@@ -175,22 +173,24 @@ public class CurrencyConverterTest {
 
     @Test(expected = ConfigException.class)
     public void testConvert_Currency_Code_Fourpart_Locale_Invalid() throws 
Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Currency valueRead = 
config.get("tests.converter.currency.code-locale-fourpart", Currency.class);
         assertThat(valueRead).isNull();
     }
 
     @Test(expected = ConfigException.class)
     public void testConvert_CurrencyInvalid() throws ConfigException {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         config.get("tests.converter.currency.invalid", Currency.class);
     }
 
     @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("", context);
+        converter.convert("");
+        ConversionContext.reset();
 
         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/e45effd2/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 d3a88fd..9b7cbd8 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
@@ -20,7 +20,6 @@ package org.apache.tamaya.core.internal.converters;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 import static org.assertj.core.api.Assertions.*;
@@ -39,7 +38,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_Decimal() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.decimal", 
Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(1.23456789).isCloseTo(valueRead, within(0.0d));
@@ -52,7 +51,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_DecimalNegative() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = 
config.get("tests.converter.double.decimalNegative", Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(-1.23456789).isCloseTo(valueRead, within(0.0d));
@@ -65,7 +64,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_Integer() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.integer", 
Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(100d).isCloseTo(valueRead, within(0.0d));
@@ -78,7 +77,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_Hex1() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.hex1", 
Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(255d).isCloseTo(valueRead, within(0.0d));
@@ -91,7 +90,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_Hex2() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.hex2", 
Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(-255d).isCloseTo(valueRead, within(0.0d));
@@ -104,7 +103,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_Hex3() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.hex3", 
Double.class);
         assertThat(valueRead!=null).isTrue();
     }
@@ -116,7 +115,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_MinValue() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.min", 
Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(valueRead).isCloseTo(Double.MIN_VALUE, within(0.0d));
@@ -129,7 +128,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_MaxValue() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.max", 
Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(valueRead).isCloseTo(Double.MAX_VALUE, within(0.0d));
@@ -142,7 +141,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_NaNValue() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.nan", 
Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(valueRead).isCloseTo(Double.NaN, within(0.0d));
@@ -155,7 +154,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_PositiveInfinityValue() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.pi", 
Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(valueRead).isCloseTo(Double.POSITIVE_INFINITY, 
within(0.0d));
@@ -168,7 +167,7 @@ public class DoubleConverterTest {
      */
     @Test
     public void testConvert_Double_NegativeInfinityValue() throws Exception {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         Double valueRead = config.get("tests.converter.double.ni", 
Double.class);
         assertThat(valueRead!=null).isTrue();
         assertThat(valueRead).isCloseTo(Double.NEGATIVE_INFINITY, 
within(0.0d));
@@ -177,15 +176,17 @@ public class DoubleConverterTest {
     
     @Test(expected = ConfigException.class)
     public void testConvert_DoubleInvalid() throws ConfigException {
-        Configuration config = ConfigurationProvider.getConfiguration();
+        Configuration config = Configuration.current();
         config.get("tests.converter.double.invalid", Double.class);
     }
 
     @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("", context);
+        converter.convert("");
+        ConversionContext.reset();
 
         assertThat(context.getSupportedFormats().contains("<double> 
(DoubleConverter)")).isTrue();
         assertThat(context.getSupportedFormats().contains("MIN_VALUE 
(DoubleConverter)")).isTrue();

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/e45effd2/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 5aa9939..5fd3ce2 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", context);
+        Duration duration = conv.convert("PT20.345S");
         assertThat(duration).isEqualTo(Duration.parse("PT20.345S"));
-        duration = conv.convert("PT15M", context);
+        duration = conv.convert("PT15M");
         assertThat(duration).isEqualTo(Duration.parse("PT15M"));
-        duration = conv.convert("PT10H", context);
+        duration = conv.convert("PT10H");
         assertThat(duration).isEqualTo(Duration.parse("PT10H"));
-        duration = conv.convert("P2D", context);
+        duration = conv.convert("P2D");
         assertThat(duration).isEqualTo(Duration.parse("P2D"));
-        duration = conv.convert("P2DT3H4M", context);
+        duration = conv.convert("P2DT3H4M");
         assertThat(duration).isEqualTo(Duration.parse("P2DT3H4M"));
-        duration = conv.convert("foo", context);
+        duration = conv.convert("foo");
         assertThat(duration).isNull();
     }
 
@@ -79,11 +79,13 @@ public class DurationConverterTest {
 
     @Test
     public void callToConvertAddsMoreSupportedFormatsToTheContext() throws 
Exception {
-        ConversionContext localcontext = new 
ConversionContext.Builder(TypeLiteral.of(Duration.class)).build();
+        ConversionContext context = new 
ConversionContext.Builder(TypeLiteral.of(Duration.class)).build();
+        ConversionContext.set(context);
         DurationConverter converter = new DurationConverter();
-        converter.convert("", localcontext);
+        converter.convert("");
+        ConversionContext.reset();
 
-        assertThat(localcontext.getSupportedFormats().contains("PT20M34S 
(DurationConverter)")).isTrue();
+        assertThat(context.getSupportedFormats().contains("PT20M34S 
(DurationConverter)")).isTrue();
     }
 
     @Test


Reply via email to