Repository: incubator-tamaya-extensions
Updated Branches:
  refs/heads/master ac45f107b -> e190b34f2


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resolver/src/main/java/org/apache/tamaya/resolver/Resolver.java
----------------------------------------------------------------------
diff --git 
a/modules/resolver/src/main/java/org/apache/tamaya/resolver/Resolver.java 
b/modules/resolver/src/main/java/org/apache/tamaya/resolver/Resolver.java
index c2bc908..7450c27 100644
--- a/modules/resolver/src/main/java/org/apache/tamaya/resolver/Resolver.java
+++ b/modules/resolver/src/main/java/org/apache/tamaya/resolver/Resolver.java
@@ -21,6 +21,7 @@ package org.apache.tamaya.resolver;
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.resolver.spi.ExpressionEvaluator;
 import org.apache.tamaya.resolver.spi.ExpressionResolver;
+import org.apache.tamaya.spi.ServiceContext;
 import org.apache.tamaya.spi.ServiceContextManager;
 
 import java.util.Collection;
@@ -36,17 +37,35 @@ public final class Resolver {
     private Resolver(){}
 
     /**
-     * Evaluates the current expression.
+     * Evaluates the current expression using the current thread's context 
classloader.
      * @param key the key, not null.
      * @param value the value to be filtered/evaluated.
      * @return the filtered/evaluated value, including null.
      */
     public static String evaluateExpression(String key, String value){
-        return evaluator().evaluateExpression(key, value, true);
+        return 
evaluator(Thread.currentThread().getContextClassLoader()).evaluateExpression(key,
 value, true);
+    }
+
+    /**
+     * Evaluates the current expression.
+     * @param key the key, not null.
+     * @param value the value to be filtered/evaluated.
+     * @param classLoader the classloader to be used, not null.
+     * @return the filtered/evaluated value, including null.
+     */
+    public static String evaluateExpression(String key, String value, 
ClassLoader classLoader){
+        return evaluator(classLoader).evaluateExpression(key, value, true);
     }
 
-    private static ExpressionEvaluator evaluator() {
-        ExpressionEvaluator evaluator = 
ServiceContextManager.getServiceContext().getService(ExpressionEvaluator.class);
+    /**
+     * Get the evaluator.
+     * @param classLoader the classloader to be used, not null.
+     * @return the evaluator, never null.
+     * @throws ConfigException if the evaluator cannot be evaluated.
+     */
+    private static ExpressionEvaluator evaluator(ClassLoader classLoader) {
+        ExpressionEvaluator evaluator = 
ServiceContextManager.getServiceContext(classLoader)
+                .getService(ExpressionEvaluator.class);
         if(evaluator==null){
             throw new ConfigException("No ExpressionEvaluator registered.");
         }
@@ -54,30 +73,55 @@ public final class Resolver {
     }
 
     /**
-     * Evaluates the current expression.
+     * Evaluates the current expression using the current thread's context 
classloader.
      * @param value the value to be filtered/evaluated.
      * @return the filtered/evaluated value, including null.
      */
     public static String evaluateExpression(String value){
-        return evaluateExpression(value, true);
+
+        return evaluateExpression(value, true, 
Thread.currentThread().getContextClassLoader());
     }
 
     /**
      * Evaluates the current expression.
      * @param value the value to be filtered/evaluated.
+     * @param classLoader the classloader to be used, not null.
+     * @return the filtered/evaluated value, including null.
+     */
+    public static String evaluateExpression(String value, ClassLoader 
classLoader){
+        return evaluateExpression(value, true, classLoader);
+    }
+
+    /**
+     * Evaluates the current expression using the current thread's context 
classloader.
+     * @param value the value to be filtered/evaluated.
      * @param maskNotFound if true, not found expression parts will be 
replaced vy surrounding with [].
      *                     Setting to false will replace the value with an 
empty String.
      * @return the filtered/evaluated value, including null.
      */
     public static String evaluateExpression(String value, boolean 
maskNotFound){
-        return evaluator().evaluateExpression(null, value, maskNotFound);
+        return evaluateExpression(value, maskNotFound, 
Thread.currentThread().getContextClassLoader());
+    }
+
+    /**
+     * Evaluates the current expression.
+     * @param value the value to be filtered/evaluated.
+     * @param maskNotFound if true, not found expression parts will be 
replaced vy surrounding with [].
+     *                     Setting to false will replace the value with an 
empty String.
+     * @param classLoader the classloader to be used, not null.
+     * @return the filtered/evaluated value, including null.
+     */
+    public static String evaluateExpression(String value, boolean 
maskNotFound, ClassLoader classLoader){
+        return evaluator(classLoader).evaluateExpression(null, value, 
maskNotFound);
     }
 
     /**
      * Access a collection with the currently registered {@link 
ExpressionResolver} instances.
      * @return the resolvers currently known, never null.
+     * @deprecated will be removed.
      */
+    @Deprecated
     public static Collection<ExpressionResolver> getResolvers(){
-        return evaluator().getResolvers();
+        return 
evaluator(Thread.currentThread().getContextClassLoader()).getResolvers();
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ConfigResolver.java
----------------------------------------------------------------------
diff --git 
a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ConfigResolver.java
 
b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ConfigResolver.java
index 4708a39..a7794ed 100644
--- 
a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ConfigResolver.java
+++ 
b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ConfigResolver.java
@@ -18,17 +18,21 @@
  */
 package org.apache.tamaya.resolver.internal;
 
-import org.apache.tamaya.ConfigurationProvider;
+import org.apache.tamaya.Configuration;
 import org.apache.tamaya.resolver.spi.ExpressionResolver;
+import org.apache.tamaya.spi.ClassloaderAware;
 
 import javax.annotation.Priority;
+import java.util.Objects;
 
 /**
  * Property resolver implementation that interprets the resolver expression as 
a reference to another configuration
  * entry. It can be explicitly addressed by prefixing {@code conf:}, e.g. 
{@code ${conf:my.other.config.value}}.
  */
 @Priority(200)
-public final class ConfigResolver implements ExpressionResolver{
+public final class ConfigResolver implements ExpressionResolver, 
ClassloaderAware {
+
+    private ClassLoader classLoader;
 
     @Override
     public String getResolverPrefix() {
@@ -37,7 +41,16 @@ public final class ConfigResolver implements 
ExpressionResolver{
 
     @Override
     public String evaluate(String expression){
-        return ConfigurationProvider.getConfiguration().get(expression);
+        return Configuration.current(classLoader).get(expression);
+    }
+
+    @Override
+    public void init(ClassLoader classLoader) {
+        this.classLoader = Objects.requireNonNull(classLoader);
     }
 
+    @Override
+    public ClassLoader getClassLoader() {
+        return classLoader;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java
----------------------------------------------------------------------
diff --git 
a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java
 
b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java
index c3fe387..41d39e7 100644
--- 
a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java
+++ 
b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/DefaultExpressionEvaluator.java
@@ -160,7 +160,7 @@ public class DefaultExpressionEvaluator implements 
ExpressionEvaluator {
 
     /**
      * Parses subexpression from tokenizer, hereby counting all open and 
closed brackets, but ignoring any
-     * meta characters.
+     * getMeta characters.
      * @param tokenizer the current tokenizer instance
      * @param valueToBeFiltered subexpression to be filtered for
      * @return the parsed sub expression

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ExpressionResolutionFilter.java
----------------------------------------------------------------------
diff --git 
a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ExpressionResolutionFilter.java
 
b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ExpressionResolutionFilter.java
index e7d9ff6..72fd71c 100644
--- 
a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ExpressionResolutionFilter.java
+++ 
b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ExpressionResolutionFilter.java
@@ -20,12 +20,10 @@ package org.apache.tamaya.resolver.internal;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.resolver.spi.ExpressionEvaluator;
-import org.apache.tamaya.spi.FilterContext;
-import org.apache.tamaya.spi.PropertyFilter;
-import org.apache.tamaya.spi.PropertyValue;
-import org.apache.tamaya.spi.ServiceContextManager;
+import org.apache.tamaya.spi.*;
 
 import javax.annotation.Priority;
+import java.util.Objects;
 import java.util.logging.Logger;
 
 /**
@@ -34,12 +32,25 @@ import java.util.logging.Logger;
  * has the advantage that different resolvers can be active in parallel.
  */
 @Priority(10000)
-public class ExpressionResolutionFilter implements PropertyFilter {
+public class ExpressionResolutionFilter implements PropertyFilter, 
ClassloaderAware {
 
     private static final Logger LOG = 
Logger.getLogger(ExpressionResolutionFilter.class.getName());
 
+    private ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();
+
+    @Override
+    public void init(ClassLoader classLoader) {
+        this.classLoader = Objects.requireNonNull(classLoader);
+
+    }
+
+    @Override
+    public ClassLoader getClassLoader() {
+        return classLoader;
+    }
+
     private final ExpressionEvaluator evaluator(){
-        ExpressionEvaluator evaluator = 
ServiceContextManager.getServiceContext().getService(ExpressionEvaluator.class);
+        ExpressionEvaluator evaluator = 
ServiceContextManager.getServiceContext(classLoader).getService(ExpressionEvaluator.class);
         if(evaluator==null){
             throw new ConfigException("No ExpressionEvaluator registered.");
         }
@@ -80,19 +91,17 @@ public class ExpressionResolutionFilter implements 
PropertyFilter {
      * 
<li><code>\${resolverId:expression}foo${resolverId2:expression2}bar</code> 
(first expression is escaped).</li>
      * </ul>
      *
-     * @param context the filter context
      * @param valueToBeFiltered value to be analyzed for expressions
      * @return the resolved value, or the input in case where no expression 
was detected.
      */
     @Override
-    public PropertyValue filterProperty(PropertyValue valueToBeFiltered, 
FilterContext context){
+    public PropertyValue filterProperty(PropertyValue valueToBeFiltered){
         LOG.finest("Resolving " + valueToBeFiltered);
         String newVal = 
evaluator().evaluateExpression(valueToBeFiltered.getKey(), 
valueToBeFiltered.getValue(), true);
         if(newVal!=null){
-            return valueToBeFiltered.toBuilder().setValue(newVal).build();
+            return valueToBeFiltered.setValue(newVal);
         }
         return null;
     }
 
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ResourceResolver.java
----------------------------------------------------------------------
diff --git 
a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ResourceResolver.java
 
b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ResourceResolver.java
index 52db593..291fc49 100644
--- 
a/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ResourceResolver.java
+++ 
b/modules/resolver/src/main/java/org/apache/tamaya/resolver/internal/ResourceResolver.java
@@ -19,16 +19,14 @@
 package org.apache.tamaya.resolver.internal;
 
 import org.apache.tamaya.resolver.spi.ExpressionResolver;
+import org.apache.tamaya.spi.ClassloaderAware;
 import org.apache.tamaya.spi.ServiceContextManager;
 
 import javax.annotation.Priority;
 import java.io.BufferedReader;
 import java.io.InputStreamReader;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.List;
+import java.util.*;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -42,7 +40,7 @@ import static java.nio.charset.StandardCharsets.UTF_8;
  * <p>If the {@code Resources} module is available this module is used for 
resolving the expression.</p>
  */
 @Priority(300)
-public final class ResourceResolver implements ExpressionResolver {
+public final class ResourceResolver implements ExpressionResolver, 
ClassloaderAware {
     /**
      * The looger used.
      */
@@ -53,6 +51,8 @@ public final class ResourceResolver implements 
ExpressionResolver {
      */
     private static final boolean IS_RESOURCE_MODULE_AVAILABLE = 
checkResourceModule();
 
+    private ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();
+
     /**
      * Checks if the Tamaya ResourceLoader can be loaded from the classpath.
      *
@@ -68,23 +68,23 @@ public final class ResourceResolver implements 
ExpressionResolver {
     }
 
     @Override
+    public void init(ClassLoader classLoader) {
+        this.classLoader = Objects.requireNonNull(classLoader);
+    }
+
+    @Override
+    public ClassLoader getClassLoader() {
+        return classLoader;
+    }
+
+    @Override
     public String getResolverPrefix() {
         return "resource:";
     }
 
     @Override
     public String evaluate(String expression) {
-        List<ClassLoader> classLoaders = new ArrayList<>();
-        for (ClassLoader cl : new 
ClassLoader[]{Thread.currentThread().getContextClassLoader(), 
getClass().getClassLoader(), ClassLoader.getSystemClassLoader()}) {
-            if (!classLoaders.contains(cl)) {
-                classLoaders.add(cl);
-            }
-        }
-        return readURL(expression, classLoaders);
-    }
-
-    private String readURL(String expression, List<ClassLoader> classLoaders) {
-        URL url = getUrl(expression, classLoaders);
+        URL url = getUrl(expression, classLoader);
         if(url==null){
             return null;
         }
@@ -105,7 +105,7 @@ public final class ResourceResolver implements 
ExpressionResolver {
         }
     }
 
-    private URL getUrl(String expression, List<ClassLoader> classLoaders) {
+    private URL getUrl(String expression, ClassLoader... classLoaders) {
         if (IS_RESOURCE_MODULE_AVAILABLE) {
             org.apache.tamaya.resource.ResourceResolver resolver = 
ServiceContextManager.getServiceContext()
                     
.getService(org.apache.tamaya.resource.ResourceResolver.class);
@@ -124,8 +124,8 @@ public final class ResourceResolver implements 
ExpressionResolver {
                 List<URL> resources = new ArrayList<>();
                 Enumeration<URL> found;
                 try {
-                    found = ServiceContextManager.getServiceContext()
-                            .getResources(expression, cl);
+                    found = ServiceContextManager.getServiceContext(cl)
+                            .getResources(expression);
                 } catch (Exception e) {
                     LOG.log(Level.SEVERE, "Error resolving expression: " + 
expression, e);
                     continue;
@@ -149,4 +149,5 @@ public final class ResourceResolver implements 
ExpressionResolver {
         return null; // no such resource found
     }
 
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
----------------------------------------------------------------------
diff --git 
a/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
 
b/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
index 051e366..aac6244 100644
--- 
a/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
+++ 
b/modules/resolver/src/test/java/org/apache/tamaya/resolver/ConfigResolutionTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tamaya.resolver;
 
+import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationProvider;
 import org.junit.Test;
 
@@ -38,80 +39,80 @@ public class ConfigResolutionTest {
 
     @Test
     public void test_Prefix_Resolution() {
-        assertEquals(ConfigurationProvider.getConfiguration().get("Before Text 
(prefixed)"), "My Java version is " + System.getProperty("java.version"));
+        assertEquals(Configuration.current().get("Before Text (prefixed)"), 
"My Java version is " + System.getProperty("java.version"));
     }
 
     @Test
     public void test_Midfix_Resolution() {
-        assertEquals(ConfigurationProvider.getConfiguration().get("Before and 
After Text (prefixed)"), "My Java version is " + 
System.getProperty("java.version") + ".");
+        assertEquals(Configuration.current().get("Before and After Text 
(prefixed)"), "My Java version is " + System.getProperty("java.version") + ".");
     }
 
     @Test
     public void test_Prefix_Resolution_BadSyntax1() {
-        assertEquals(ConfigurationProvider.getConfiguration().get("Will 
fail1."), "V$java.version");
+        assertEquals(Configuration.current().get("Will fail1."), 
"V$java.version");
     }
 
     @Test
     public void test_Prefix_Resolution_BadSyntax2() {
-        assertEquals(ConfigurationProvider.getConfiguration().get("Will 
fail2."), "V$java.version}");
+        assertEquals(Configuration.current().get("Will fail2."), 
"V$java.version}");
     }
 
     @Test
     public void test_Prefix_Resolution_BadSyntax31() {
-        assertEquals(ConfigurationProvider.getConfiguration().get("Will not 
fail3."), "V${java.version");
+        assertEquals(Configuration.current().get("Will not fail3."), 
"V${java.version");
     }
 
     @Test
     public void test_Prefix_Resolution_Escaped1() {
-        assertEquals(ConfigurationProvider.getConfiguration().get("Will not 
fail1."), "V$\\{java.version");
+        assertEquals(Configuration.current().get("Will not fail1."), 
"V$\\{java.version");
     }
 
     @Test
     public void test_Prefix_Resolution_Escaped2() {
-        assertEquals(ConfigurationProvider.getConfiguration().get("Will not 
fail2."), "V\\${java.version");
+        assertEquals(Configuration.current().get("Will not fail2."), 
"V\\${java.version");
     }
 
     @Test
     public void test_Prefix_Resolution_EnvKeys() {
-        assertEquals(ConfigurationProvider.getConfiguration().get("env.keys"), 
System.getProperty("java.version") + " plus $java.version");
+        assertEquals(Configuration.current().get("env.keys"), 
System.getProperty("java.version") + " plus $java.version");
     }
 
     @Test
     public void test_Prefix_ExpressionOnly_Resolution() {
-        assertEquals(ConfigurationProvider.getConfiguration().get("Expression 
Only"), System.getProperty("java.version"));
+        assertEquals(Configuration.current().get("Expression Only"), 
System.getProperty("java.version"));
     }
 
     @Test
     public void testConfig_Refs() {
-        
assertEquals(ConfigurationProvider.getConfiguration().get("config-ref"), 
"Expression Only -> " + System.getProperty("java.version"));
-        
assertEquals(ConfigurationProvider.getConfiguration().get("config-ref3"), 
"Config Ref 3 -> Ref 2: Config Ref 2 -> Ref 1: Expression Only -> " + 
System.getProperty("java.version"));
-        
assertEquals(ConfigurationProvider.getConfiguration().get("config-ref2"), 
"Config Ref 2 -> Ref 1: Expression Only -> " + 
System.getProperty("java.version"));
+        assertEquals(Configuration.current().get("config-ref"), "Expression 
Only -> " + System.getProperty("java.version"));
+        assertEquals(Configuration.current().get("config-ref3"), "Config Ref 3 
-> Ref 2: Config Ref 2 -> Ref 1: Expression Only -> " + 
System.getProperty("java.version"));
+        assertEquals(Configuration.current().get("config-ref2"), "Config Ref 2 
-> Ref 1: Expression Only -> " + System.getProperty("java.version"));
     }
 
     @Test
     public void testClasspath_Refs() {
-        String value = ConfigurationProvider.getConfiguration().get("cp-ref");
+        String value = Configuration.current().get("cp-ref");
         assertNotNull(value);
         assertTrue(value.contains("This content comes from 
Testresource.txt!"));
     }
 
     @Test
     public void testResource_Refs() {
-        String value = ConfigurationProvider.getConfiguration().get("res-ref");
+        String value = Configuration.current().get("res-ref");
         assertNotNull(value);
         assertTrue(value.contains("This content comes from 
Testresource.txt!"));
     }
 
     @Test
     public void testFile_Refs() {
-        String value = 
ConfigurationProvider.getConfiguration().get("file-ref");
+        String value = Configuration.current().get("file-ref");
         assertNotNull(value);
         assertTrue(value.contains("This content comes from 
Testresource2.txt!"));
     }
     
     @Test
     public void testFile_Refs_doNotAppendNewLineAtTheEnd() throws Exception {
-        String value = 
ConfigurationProvider.getConfiguration().get("file3-ref");
+        String value = Configuration.current().get("file3-ref");
         
         URI uri = 
getClass().getClassLoader().getResource("Testresource3.txt").toURI();
         byte[] byteContent = Files.readAllBytes(Paths.get(uri));
@@ -122,14 +123,14 @@ public class ConfigResolutionTest {
 
     @Test
     public void testURL_Refs() {
-        String value = ConfigurationProvider.getConfiguration().get("url-ref");
+        String value = Configuration.current().get("url-ref");
         assertNotNull(value);
         assertTrue(value.contains("doctype html") || 
"[http://www.google.com]".equals(value));
     }
 
     @Test
     public void testEscaping(){
-        assertEquals(ConfigurationProvider.getConfiguration().get("escaped"),
+        assertEquals(Configuration.current().get("escaped"),
                 "Config Ref 3 -> Ref 2: \\${conf:config-ref2 will not be 
evaluated and will not contain\\t tabs \\n " +
                 "newlines or \\r returns...YEP!");
     }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resolver/src/test/java/org/apache/tamaya/resolver/ResolverTest.java
----------------------------------------------------------------------
diff --git 
a/modules/resolver/src/test/java/org/apache/tamaya/resolver/ResolverTest.java 
b/modules/resolver/src/test/java/org/apache/tamaya/resolver/ResolverTest.java
index 74c9d84..183183a 100644
--- 
a/modules/resolver/src/test/java/org/apache/tamaya/resolver/ResolverTest.java
+++ 
b/modules/resolver/src/test/java/org/apache/tamaya/resolver/ResolverTest.java
@@ -28,14 +28,42 @@ import static org.junit.Assert.*;
 public class ResolverTest {
 
     @Test
+    public void testEvaluateExpression_withMask_NoKey() throws Exception {
+        assertEquals(Resolver.evaluateExpression("Version ${java.foo}", true),
+                "Version ?{java.foo}");
+    }
+
+    @Test
+    public void testEvaluateExpression_withMask_Classloader() throws Exception 
{
+        assertEquals(Resolver.evaluateExpression("Version ${java.foo}", true,
+                Thread.currentThread().getContextClassLoader()),
+                "Version ?{java.foo}");
+    }
+
+
+    @Test
     public void testEvaluateExpression() throws Exception {
         assertEquals(Resolver.evaluateExpression("myKey", "Version 
${java.version}"),
                 "Version " + System.getProperty("java.version"));
     }
 
     @Test
-    public void testEvaluateExpression1() throws Exception {
+    public void testEvaluateExpression_NoKey() throws Exception {
         assertEquals(Resolver.evaluateExpression("Version ${java.version}"),
                 "Version " + System.getProperty("java.version"));
     }
+
+    @Test
+    public void testEvaluateExpression_ClassLoader() throws Exception {
+        assertEquals(Resolver.evaluateExpression("myKey", "Version 
${java.version}",
+                Thread.currentThread().getContextClassLoader()),
+                "Version " + System.getProperty("java.version"));
+    }
+
+    @Test
+    public void testEvaluateExpression1_NoKey_ClassLoader() throws Exception {
+        assertEquals(Resolver.evaluateExpression("Version ${java.version}",
+                Thread.currentThread().getContextClassLoader()),
+                "Version " + System.getProperty("java.version"));
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/README.md
----------------------------------------------------------------------
diff --git a/modules/resources/README.md b/modules/resources/README.md
index 96afaa3..e359656 100644
--- a/modules/resources/README.md
+++ b/modules/resources/README.md
@@ -21,6 +21,6 @@ the above expressions above are equivalent to
   file:c:\temp\**\*
 
 Most benefits are created, when also using the formats module, which provides 
an implementation of a 
-PropertySourceProvider taking a set of paths to be resolved and a number of 
supported formats.
+PropertySourceProvider taking a setCurrent of paths to be resolved and a 
number of supported formats.
 
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/main/java/org/apache/tamaya/resource/AbstractPathPropertySourceProvider.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/main/java/org/apache/tamaya/resource/AbstractPathPropertySourceProvider.java
 
b/modules/resources/src/main/java/org/apache/tamaya/resource/AbstractPathPropertySourceProvider.java
index 760e688..d7462b9 100644
--- 
a/modules/resources/src/main/java/org/apache/tamaya/resource/AbstractPathPropertySourceProvider.java
+++ 
b/modules/resources/src/main/java/org/apache/tamaya/resource/AbstractPathPropertySourceProvider.java
@@ -31,6 +31,7 @@ import java.util.Properties;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import org.apache.tamaya.spi.ClassloaderAware;
 import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertySourceProvider;
 import org.apache.tamaya.spi.PropertyValue;
@@ -40,12 +41,13 @@ import org.apache.tamaya.spi.PropertyValue;
  * included into the configuration. This is especially useful, when the 
current configuration policy in place
  * does not define the exact file names, but the file locations, where 
configuration can be provided.
  */
-public abstract class AbstractPathPropertySourceProvider implements 
PropertySourceProvider{
+public abstract class AbstractPathPropertySourceProvider implements 
PropertySourceProvider, ClassloaderAware {
     /** The log used. */
     private static final Logger LOG = 
Logger.getLogger(AbstractPathPropertySourceProvider.class.getName());
     /** The resource paths. */
     private String[] resourcePaths;
 
+    private ClassLoader classLoader = 
Thread.currentThread().getContextClassLoader();
 
     /**
      * Creates a new instance using the given resource paths.
@@ -60,11 +62,21 @@ public abstract class AbstractPathPropertySourceProvider 
implements PropertySour
     }
 
     @Override
+    public void init(ClassLoader classLoader){
+        this.classLoader = Objects.requireNonNull(classLoader);
+    }
+
+    @Override
+    public ClassLoader getClassLoader(){
+        return classLoader;
+    }
+
+    @Override
     public Collection<PropertySource> getPropertySources() {
         List<PropertySource> propertySources = new ArrayList<>();
         for (String resource : getResourcePaths()) {
             try {
-                Collection<URL> resources = 
ConfigResources.getResourceResolver().getResources(resource);
+                Collection<URL> resources = 
ConfigResources.getResourceResolver().getResources(classLoader, resource);
                 for (URL url : resources) {
                     try {
                         Collection<PropertySource>  propertySourcesToInclude = 
getPropertySources(url);
@@ -168,7 +180,7 @@ public abstract class AbstractPathPropertySourceProvider 
implements PropertySour
         }
 
         /**
-         * Returns the  default ordinal used, when no ordinal is set, or the 
ordinal was not parseable to an int value.
+         * Returns the  default ordinal used, when no ordinal is setCurrent, 
or the ordinal was not parseable to an int value.
          *
          * @return the  default ordinal used, by default 0.
          */

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/main/java/org/apache/tamaya/resource/BaseResourceResolver.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/main/java/org/apache/tamaya/resource/BaseResourceResolver.java
 
b/modules/resources/src/main/java/org/apache/tamaya/resource/BaseResourceResolver.java
index cb8c1f5..a407d81 100644
--- 
a/modules/resources/src/main/java/org/apache/tamaya/resource/BaseResourceResolver.java
+++ 
b/modules/resources/src/main/java/org/apache/tamaya/resource/BaseResourceResolver.java
@@ -41,60 +41,12 @@ import java.util.Collection;
  *     /user/home/A*b101_?.pid
  *     /var/logs&#47;**&#47;*.log
  * </pre>
+ * @deprecated Will be removed, covered by default methods.
  */
+@Deprecated
 public abstract class BaseResourceResolver implements ResourceResolver {
 
     /**
-     * Resolves resource expressions to a list of {@link URL}s. Hereby
-     * the ordering of format matches the input of the resolved expressions. 
Nevertheless be aware that
-     * there is no determined ordering of format located within a classloader.
-     *
-     * @param expressions the expressions to be resolved, not empty.
-     * @return the corresponding collection of current {@link URL}s found, 
never
-     * null.
-     * .
-     */
-    @Override
-    public Collection<URL> getResources(Collection<String> expressions) {
-        ClassLoader cl = Thread.currentThread().getContextClassLoader();
-        if (cl == null) {
-            cl = getClass().getClassLoader();
-        }
-        return getResources(cl, expressions);
-    }
-
-    /**
-     * Resolves resource expressions to a list of {@link URL}s. Hereby
-     * the ordering of format matches the input of the resolved expressions. 
Nevertheless be aware that
-     * there is no determined ordering of format located within a classloader.
-     *
-     * @param expressions the expressions to be resolved, not empty.
-     * @return the corresponding collection of current {@link URL}s found, 
never
-     * null.
-     * .
-     */
-    @Override
-    public Collection<URL> getResources(String... expressions) {
-        return getResources(Arrays.asList(expressions));
-    }
-
-    /**
-     * Resolves resource expressions to a list of {@link URL}s, considerubg
-     * the given classloader for classloader dependent format. Hereby
-     * the ordering of format matches the input of the resolved expressions. 
Nevertheless be aware that
-     * there is no determined ordering of format located within a classloader.
-     *
-     * @param expressions the expressions to be resolved, not empty.
-     * @return the corresponding collection of current {@link URL}s found, 
never
-     * null.
-     * .
-     */
-    @Override
-    public Collection<URL> getResources(ClassLoader classLoader, String... 
expressions) {
-        return getResources(classLoader, Arrays.asList(expressions));
-    }
-
-    /**
      * Resolves resource expressions to a list of {@link URL}s, considerubg
      * the given classloader for classloader dependent format. Hereby
      * the ordering of format matches the input of the resolved expressions. 
Nevertheless be aware that

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/main/java/org/apache/tamaya/resource/ConfigResources.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/main/java/org/apache/tamaya/resource/ConfigResources.java
 
b/modules/resources/src/main/java/org/apache/tamaya/resource/ConfigResources.java
index ae08148..a0a2f20 100644
--- 
a/modules/resources/src/main/java/org/apache/tamaya/resource/ConfigResources.java
+++ 
b/modules/resources/src/main/java/org/apache/tamaya/resource/ConfigResources.java
@@ -38,9 +38,23 @@ public final class ConfigResources {
      * @throws ConfigException if no ResourceResolver is available (should not 
happen).
      *
      * @return the current ResourceResolver instance, never null.
+     * @deprecated Use {@link #getResourceResolver(ClassLoader)}
      */
+    @Deprecated
     public static ResourceResolver getResourceResolver() throws 
ConfigException {
-        ResourceResolver resolver = 
ServiceContextManager.getServiceContext().getService(ResourceResolver.class);
+        return 
getResourceResolver(Thread.currentThread().getContextClassLoader());
+    }
+
+    /**
+     * <p>Access the current ResourceResolver.</p>
+     *
+     * @throws ConfigException if no ResourceResolver is available (should not 
happen).
+     *
+     * @return the current ResourceResolver instance, never null.
+     */
+    public static ResourceResolver getResourceResolver(ClassLoader 
classLoader) throws ConfigException {
+        ResourceResolver resolver = 
ServiceContextManager.getServiceContext(classLoader)
+                .getService(ResourceResolver.class);
         if (resolver == null) {
             throw new ConfigException("ResourceResolver not available.");
         }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/main/java/org/apache/tamaya/resource/ResourceResolver.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/main/java/org/apache/tamaya/resource/ResourceResolver.java
 
b/modules/resources/src/main/java/org/apache/tamaya/resource/ResourceResolver.java
index d27b38f..f21cf02 100644
--- 
a/modules/resources/src/main/java/org/apache/tamaya/resource/ResourceResolver.java
+++ 
b/modules/resources/src/main/java/org/apache/tamaya/resource/ResourceResolver.java
@@ -19,6 +19,7 @@
 package org.apache.tamaya.resource;
 
 import java.net.URL;
+import java.util.Arrays;
 import java.util.Collection;
 
 /**
@@ -53,7 +54,13 @@ public interface ResourceResolver {
      * null.
      * .
      */
-    Collection<URL> getResources(Collection<String> expressions);
+    default Collection<URL> getResources(Collection<String> expressions) {
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        if (cl == null) {
+            cl = getClass().getClassLoader();
+        }
+        return getResources(cl, expressions);
+    }
 
     /**
      * Resolves resource expressions to a list of {@link URL}s. Hereby
@@ -65,7 +72,9 @@ public interface ResourceResolver {
      * null.
      * .
      */
-    Collection<URL> getResources(String... expressions);
+    default Collection<URL> getResources(String... expressions){
+        return getResources(Arrays.asList(expressions));
+    }
 
     /**
      * Resolves resource expressions to a list of {@link URL}s, considerubg
@@ -77,7 +86,9 @@ public interface ResourceResolver {
      * @param expressions the expressions to be resolved, not empty.
      * @return the corresponding collection of current {@link URL}s found, 
never {@code null}.
      */
-    Collection<URL> getResources(ClassLoader classLoader, String... 
expressions);
+    default Collection<URL> getResources(ClassLoader classLoader, String... 
expressions){
+        return getResources(classLoader, Arrays.asList(expressions));
+    }
 
     /**
      * Resolves resource expressions to a list of {@link URL}s, considerubg

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClassPathResourceLocator.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClassPathResourceLocator.java
 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClassPathResourceLocator.java
index 6c5d8d6..f198095 100644
--- 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClassPathResourceLocator.java
+++ 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClassPathResourceLocator.java
@@ -53,8 +53,9 @@ public class ClassPathResourceLocator implements 
ResourceLocator{
     public Collection<URL> lookup(ClassLoader classLoader, String expression) {
         List<URL> resources = new ArrayList<>();
         try {
-            Enumeration<URL> urls = ServiceContextManager.getServiceContext()
-                            .getResources(expression, classLoader);
+            Enumeration<URL> urls = ServiceContextManager.getServiceContext(
+                    Thread.currentThread().getContextClassLoader()
+            ).getResources(expression);
             while (urls.hasMoreElements()) {
                 URL url = urls.nextElement();
                 resources.add(url);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClasspathCollector.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClasspathCollector.java
 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClasspathCollector.java
index 99ee5c4..d5a8d8b 100644
--- 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClasspathCollector.java
+++ 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/ClasspathCollector.java
@@ -115,8 +115,10 @@ public class ClasspathCollector {
         Locator locator = Locator.of(expression);
         List<URL> result = new ArrayList<>();
         try {
-            Enumeration<URL> rootResources = 
ServiceContextManager.getServiceContext()
-                            .getResources(locator.getRootPath(), 
this.classLoader);
+            Enumeration<URL> rootResources = 
ServiceContextManager.getServiceContext(
+                    this.classLoader
+            )
+                            .getResources(locator.getRootPath());
             while (rootResources.hasMoreElements()) {
                 URL resource = rootResources.nextElement();
                 try {
@@ -277,8 +279,8 @@ public class ClasspathCollector {
 
     /**
      * Method that collects resources from a JBoss classloading system using 
Vfs.
-     * @param rootResource the root resource for evaluating its children.
-     * @param locationPattern the sub pattern that all children must mach, so 
they are selected.
+     * @param rootResource the root resource for evaluating its getChildren.
+     * @param locationPattern the sub pattern that all getChildren must mach, 
so they are selected.
      * @return the resources found, never null.
      * @throws IOException
      */

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/DefaultResourceResolver.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/DefaultResourceResolver.java
 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/DefaultResourceResolver.java
index 6c1b5e6..b04b8ce 100644
--- 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/DefaultResourceResolver.java
+++ 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/DefaultResourceResolver.java
@@ -56,7 +56,9 @@ public class DefaultResourceResolver extends 
BaseResourceResolver {
 
     @Override
     public Collection<ResourceLocator> getResourceLocators() {
-        return 
ServiceContextManager.getServiceContext().getServices(ResourceLocator.class);
+        return ServiceContextManager.getServiceContext(
+                Thread.currentThread().getContextClassLoader()
+        ).getServices(ResourceLocator.class);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/FileCollector.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/FileCollector.java
 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/FileCollector.java
index eccb873..3e79ba3 100644
--- 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/FileCollector.java
+++ 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/FileCollector.java
@@ -76,7 +76,7 @@ public class FileCollector {
      * elements given by {@code subTokens}, starting at the given {@code 
tokenIndex}.
      * @param dir the directory to start
      * @param subTokens the overall subtoken to be analyzed
-     * @param tokenIndex the index where in the token list to start comparing
+     * @param tokenIndex the getIndex where in the token list to start 
comparing
      * @return the URLs matching the tokens
      */
     static Collection<URL> traverseAndSelectFromChildren(File dir, 
List<String> subTokens, int tokenIndex) {
@@ -158,10 +158,10 @@ public class FileCollector {
     }
 
     /**
-     * Constructs a sub expression, using the tokens from {@code subTokens} 
starting at index {@code startIndex}.
+     * Constructs a sub expression, using the tokens from {@code subTokens} 
starting at getIndex {@code startIndex}.
      *
      * @param subTokens  the token list, not null
-     * @param startIndex the start index from where tokens should be taken to 
produce the path.
+     * @param startIndex the start getIndex from where tokens should be taken 
to produce the path.
      * @return the constructed path, never null.
      */
     private static String getSubExpression(List<String> subTokens, int 
startIndex) {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/VfsSupport.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/VfsSupport.java
 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/VfsSupport.java
index 7e75c99..e98280f 100644
--- 
a/modules/resources/src/main/java/org/apache/tamaya/resource/internal/VfsSupport.java
+++ 
b/modules/resources/src/main/java/org/apache/tamaya/resource/internal/VfsSupport.java
@@ -168,7 +168,7 @@ class VfsSupport {
         try {
             return (String) methodGetPathName.invoke(resource);
         } catch (Exception e) {
-            throw new IllegalStateException("Failed to get path name - " + 
resource, e);
+            throw new IllegalStateException("Failed to current path name - " + 
resource, e);
         }
     }
 
@@ -209,8 +209,8 @@ class VfsSupport {
      * has a primitive type.
      * <p>Thrown exceptions are rethrown as {@link IllegalStateException}.
      *
-     * @param field  the field to get
-     * @param target the target object from which to get the field
+     * @param field  the field to current
+     * @param target the target object from which to current the field
      * @return the field's current value
      */
     private static Object readField(Field field, Object target) {

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/test/java/org/apache/tamaya/resource/AbstractPathPropertySourceProviderTest.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/test/java/org/apache/tamaya/resource/AbstractPathPropertySourceProviderTest.java
 
b/modules/resources/src/test/java/org/apache/tamaya/resource/AbstractPathPropertySourceProviderTest.java
index 0dc6c91..a31f135 100644
--- 
a/modules/resources/src/test/java/org/apache/tamaya/resource/AbstractPathPropertySourceProviderTest.java
+++ 
b/modules/resources/src/test/java/org/apache/tamaya/resource/AbstractPathPropertySourceProviderTest.java
@@ -101,7 +101,7 @@ public class AbstractPathPropertySourceProviderTest {
         }
 
         /**
-         * Returns the  default ordinal used, when no ordinal is set, or the 
ordinal was not parseable to an int value.
+         * Returns the  default ordinal used, when no ordinal is setCurrent, 
or the ordinal was not parseable to an int value.
          *
          * @return the  default ordinal used, by default 0.
          */

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java
----------------------------------------------------------------------
diff --git 
a/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java
 
b/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java
index ccdc7bc..fecc24b 100644
--- 
a/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java
+++ 
b/modules/resources/src/test/java/org/apache/tamaya/resource/internal/ClasspathCollectorTest.java
@@ -29,13 +29,11 @@ import static org.junit.Assert.assertEquals;
  * This tests is using testing the classpath collector functionality, either 
by accessing/searching entries
  * from the java.annotation jar as well from the current (file-based 
classpath).
  */
-@Ignore
-// Tests work within IDE, but not with maven...
 public class ClasspathCollectorTest {
 
     @org.junit.Test
     public void testCollectAllClasses() throws Exception {
-        ClasspathCollector cpc = new 
ClasspathCollector(ClassLoader.getSystemClassLoader());
+        ClasspathCollector cpc = new 
ClasspathCollector(Thread.currentThread().getContextClassLoader());
         Collection<URL> found = 
cpc.collectFiles("classpath:javax/annotation/*.class");
         assertEquals(8, found.size()); // 7 ordinary, 1 inner class.
         Collection<URL> found2 = cpc.collectFiles("javax/annotation/*.class");
@@ -44,7 +42,7 @@ public class ClasspathCollectorTest {
 
     @org.junit.Test
     public void testCollectAllInPackage() throws Exception {
-        ClasspathCollector cpc = new 
ClasspathCollector(ClassLoader.getSystemClassLoader());
+        ClasspathCollector cpc = new 
ClasspathCollector(Thread.currentThread().getContextClassLoader());
         Collection<URL> found = 
cpc.collectFiles("classpath:javax/**/sql/*.class");
         assertEquals(2, found.size());
         Collection<URL> found2 = cpc.collectFiles("javax/**/sql/*.class");
@@ -53,7 +51,7 @@ public class ClasspathCollectorTest {
 
     @org.junit.Test
     public void testCollectClassNames() throws Exception {
-        ClasspathCollector cpc = new 
ClasspathCollector(ClassLoader.getSystemClassLoader());
+        ClasspathCollector cpc = new 
ClasspathCollector(Thread.currentThread().getContextClassLoader());
         Collection<URL> found = 
cpc.collectFiles("classpath:javax/annotation/**/R*.class");
         assertEquals(2, found.size());
         Collection<URL> found2 = 
cpc.collectFiles("javax/annotation/**/R*.class");
@@ -62,7 +60,7 @@ public class ClasspathCollectorTest {
 
     @org.junit.Test
     public void testCollectWithExpression() throws Exception {
-        ClasspathCollector cpc = new 
ClasspathCollector(ClassLoader.getSystemClassLoader());
+        ClasspathCollector cpc = new 
ClasspathCollector(Thread.currentThread().getContextClassLoader());
         Collection<URL> found = 
cpc.collectFiles("classpath:javax/annotation/R?so*.class");
         assertEquals(3, found.size());
         Collection<URL> found2 = 
cpc.collectFiles("javax/annotation/R?so*.class");
@@ -71,7 +69,7 @@ public class ClasspathCollectorTest {
 
     @org.junit.Test
     public void testCollectResources() throws Exception {
-        ClasspathCollector cpc = new 
ClasspathCollector(ClassLoader.getSystemClassLoader());
+        ClasspathCollector cpc = new 
ClasspathCollector(Thread.currentThread().getContextClassLoader());
         Collection<URL> found = 
cpc.collectFiles("classpath:META-INF/maven/org.apache.geronimo.specs/**/*");
         assertEquals(3, found.size());
         Collection<URL> found2 = 
cpc.collectFiles("META-INF/maven/org.apache.geronimo.specs/**/*");
@@ -80,7 +78,7 @@ public class ClasspathCollectorTest {
 
     @org.junit.Test
     public void testCollectResourcesFromLocalFSPath() throws Exception {
-        ClasspathCollector cpc = new 
ClasspathCollector(ClassLoader.getSystemClassLoader());
+        ClasspathCollector cpc = new 
ClasspathCollector(Thread.currentThread().getContextClassLoader());
         Collection<URL> found = 
cpc.collectFiles("classpath:resources_testroot/**/*.file");
         assertEquals(7, found.size());
         Collection<URL> found2 = 
cpc.collectFiles("resources_testroot/**/*.file");

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ade6eb8b/modules/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
----------------------------------------------------------------------
diff --git 
a/modules/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
 
b/modules/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
index 2e8ac1c..d86c74a 100644
--- 
a/modules/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
+++ 
b/modules/spring/src/main/java/org/apache/tamaya/integration/spring/TamayaSpringPropertySource.java
@@ -19,6 +19,7 @@
 package org.apache.tamaya.integration.spring;
 
 
+import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationProvider;
 import org.springframework.core.env.PropertySource;
 
@@ -33,7 +34,7 @@ public class TamayaSpringPropertySource extends 
PropertySource<String> {
 
     @Override
     public String getProperty(String name) {
-        return ConfigurationProvider.getConfiguration().get(name);
+        return Configuration.current().get(name);
     }
 
 }
\ No newline at end of file

Reply via email to