This is an automated email from the ASF dual-hosted git repository.

anatole pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-tamaya-extensions.git

commit 2a57b181c0348f7ad91856c7c84a993fec17037b
Author: Anatole Tresch <[email protected]>
AuthorDate: Sat Feb 23 22:52:26 2019 +0100

    Fixed several quality issues.
---
 .../tamaya/collections/CollectionConverter.java    | 42 +++++++++++-----------
 .../collections/ConcurrentHashMapConverter.java    |  3 --
 .../tamaya/collections/HashSetConverter.java       |  3 --
 .../apache/tamaya/collections/ItemTokenizer.java   |  6 ++--
 .../tamaya/collections/LinkedListConverter.java    |  3 --
 .../apache/tamaya/collections/ListConverter.java   |  7 ++--
 .../apache/tamaya/collections/MapConverter.java    |  6 ++--
 .../apache/tamaya/collections/SetConverter.java    |  4 +--
 .../tamaya/collections/SortedSetConverter.java     |  2 --
 .../tamaya/collections/TreeMapConverter.java       |  3 --
 .../tamaya/collections/TreeSetConverter.java       |  3 --
 .../collections/CollectionsTypedReadOnlyTests.java |  3 +-
 .../consul/AbstractConsulPropertySource.java       |  4 +--
 .../apache/tamaya/consul/ConsulBackendConfig.java  |  4 ---
 .../apache/tamaya/consul/ConsulPropertySource.java | 12 -------
 .../org/apache/tamaya/consul/ConsulWriteTest.java  |  4 +--
 .../java/org/apache/tamaya/etcd/EtcdAccessor.java  |  2 +-
 .../org/apache/tamaya/etcd/EtcdPropertySource.java |  2 --
 .../apache/tamaya/events/ConfigEventManager.java   |  2 +-
 .../tamaya/events/ConfigurationChangeBuilder.java  |  1 -
 .../internal/DefaultConfigChangeObserver.java      |  1 -
 .../internal/DefaultConfigEventManagerSpi.java     | 12 +++----
 .../events/ConfigurationChangeBuilderTest.java     |  8 ++---
 .../apache/tamaya/events/RandomPropertySource.java |  2 +-
 .../events/folderobserver/FileChangeListener.java  |  3 +-
 .../ObservingPropertySourceProvider.java           |  4 +--
 .../format/BaseFormatPropertySourceProvider.java   |  1 -
 .../apache/tamaya/format/ConfigurationFormats.java |  1 -
 .../MappedConfigurationDataPropertySource.java     |  1 -
 .../format/formats/IniConfigurationFormat.java     | 11 +++---
 .../format/FormatPropertySourceProviderTest.java   |  2 +-
 .../MappedConfigurationDataPropertySourceTest.java |  4 ---
 .../org/apache/tamaya/json/JSONDataBuilder.java    |  4 +--
 .../org/apache/tamaya/json/JSONPropertySource.java |  7 ++--
 .../java/org/apache/tamaya/yaml/YAMLFormat.java    | 26 +++++++-------
 .../org/apache/tamaya/yaml/YAMLPropertySource.java |  3 +-
 .../org/apache/tamaya/yaml/YAMLFormatTest.java     |  3 +-
 .../functions/ConfigWrappingPropertySource.java    |  4 +--
 .../tamaya/functions/EnrichedPropertySource.java   |  3 +-
 .../tamaya/functions/MappedPropertySource.java     |  5 ++-
 .../functions/ValueMappedPropertySource.java       |  3 +-
 .../functions/CombinedConfigurationTest.java       |  8 ++---
 .../functions/EnrichedConfigurationTest.java       | 14 ++++----
 .../functions/EnrichedPropertySourceTest.java      |  2 --
 .../functions/FilteredPropertySourceTest.java      |  2 +-
 .../tamaya/functions/InMemoryPropertySource.java   |  4 +--
 .../tamaya/functions/MappedConfigurationTest.java  |  2 +-
 .../tamaya/functions/MappedPropertySourceTest.java |  1 -
 .../functions/PropertySourceFunctionsTest.java     |  6 ++--
 .../functions/ValueMappedPropertySourceTest.java   |  1 -
 .../hazelcast/AbstractHazelcastPropertySource.java | 16 ++++-----
 .../hazelcast/HazelcastPropertySourceTest.java     |  1 -
 .../apache/tamaya/cdi/CDIAwareServiceContext.java  |  2 +-
 .../apache/tamaya/cdi/ConfigurationProducer.java   |  8 +++--
 .../org/apache/tamaya/cdi/DefaultDynamicValue.java |  4 +--
 .../tamaya/cdi/ServiceLoaderServiceContext.java    | 13 ++++---
 .../tamaya/cdi/TamayaCDIInjectionExtension.java    |  6 ++--
 .../tamaya/cdi/TamayaSEInjectionExtension.java     |  4 +--
 .../apache/tamaya/cdi/CDIConfiguredTypeTest.java   |  2 --
 .../org/apache/tamaya/cdi/ConfiguredBTest.java     |  1 -
 .../tamaya/cdi/ConfiguredVetoExtensionTest.java    |  3 --
 .../apache/tamaya/cdi/cfg/TestPropertySource.java  |  7 +---
 .../tamaya/inject/spi/AbsoluteKeyResolver.java     |  2 --
 .../apache/tamaya/inject/spi/AutoKeyResolver.java  |  1 -
 .../apache/tamaya/inject/spi/BaseDynamicValue.java |  2 +-
 .../apache/tamaya/inject/spi/InjectionUtils.java   |  4 +--
 .../internal/ConfigTemplateInvocationHandler.java  |  1 -
 .../inject/internal/ConfiguredFieldImpl.java       |  1 -
 .../inject/internal/ConfiguredSetterMethod.java    | 11 +++---
 .../tamaya/inject/internal/ConfiguredTypeImpl.java |  9 ++---
 .../internal/DefaultConfigurationInjector.java     |  2 +-
 .../inject/internal/DefaultDynamicValue.java       | 11 +++---
 .../tamaya/inject/internal/InjectionHelper.java    |  3 +-
 .../java/annottext/NonAnnotatedConfigBean.java     |  9 -----
 .../org/apache/tamaya/jndi/JNDIPropertySource.java |  2 +-
 .../apache/tamaya/jndi/JNDIPropertySourceTest.java |  4 +--
 .../tamaya/microprofile/MicroprofileAdapter.java   |  2 +-
 .../tamaya/microprofile/MicroprofileConfig.java    |  1 -
 .../microprofile/MicroprofileConfigBuilder.java    |  6 ++--
 .../MicroprofileConfigBuilderTest.java             |  1 -
 .../MicroprofileConfigProviderResolverTest.java    |  1 -
 .../microprofile/MicroprofileConfigTest.java       |  3 --
 .../microprofile/MicroprofileConverterTest.java    |  1 -
 .../tamaya/mutableconfig/MutableConfiguration.java |  1 -
 .../MutableConfigurationProvider.java              |  1 -
 .../internal/DefaultMutableConfiguration.java      | 12 -------
 .../MutableXmlPropertiesPropertySource.java        |  2 +-
 .../tamaya/optional/OptionalConfiguration.java     |  5 +--
 .../java/org/apache/tamaya/osgi/Activator.java     |  3 +-
 .../java/org/apache/tamaya/osgi/ConfigHistory.java |  4 +--
 .../org/apache/tamaya/osgi/TamayaConfigPlugin.java | 10 +++---
 .../tamaya/osgi/commands/ConfigCommands.java       |  4 +--
 .../org/apache/tamaya/osgi/AbstractOSGITest.java   |  1 -
 .../apache/tamaya/gogo/shell/ConfigCommands.java   |  2 +-
 .../apache/tamaya/gogo/shell/HistoryCommands.java  |  2 +-
 .../apache/tamaya/gogo/shell/AbstractOSGITest.java |  4 ---
 .../tamaya/gogo/shell/BackupCommandsTest.java      |  1 -
 .../tamaya/gogo/shell/ConfigCommandsTest.java      |  2 --
 .../tamaya/gogo/shell/HistoryCommandsTest.java     |  2 --
 .../tamaya/gogo/shell/SettingsCommandsTest.java    |  1 -
 .../injection/OSGIConfigAdminPropertySource.java   |  2 +-
 .../osgi/injection/OSGIConfigurationInjector.java  | 14 ++++----
 .../tamaya/osgi/injection/TamayaOSGIInjector.java  |  3 +-
 .../tamaya/osgi/injection/AbstractOSGITest.java    |  1 -
 .../karaf/shell/ApplyTamayaConfigCommand.java      |  1 -
 .../karaf/shell/HistoryDeleteAllCommand.java       |  1 -
 .../tamaya/karaf/shell/PropertySourcesCommand.java |  3 --
 .../tamaya/osgi/updater/AbstractOSGITest.java      |  2 --
 .../internal/DefaultExpressionEvaluator.java       |  8 ++---
 .../AbstractPathPropertySourceProvider.java        |  9 +++--
 .../resource/internal/ClasspathCollector.java      |  4 +--
 .../tamaya/resource/internal/VfsSupport.java       | 16 ++++-----
 .../resource/internal/ClasspathCollectorTest.java  |  2 --
 .../internal/PathBasedPropertySourceProvider.java  |  5 ++-
 .../spring/SpringConfigInjectionPostProcessor.java |  6 ++--
 115 files changed, 197 insertions(+), 345 deletions(-)

diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/CollectionConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/CollectionConverter.java
index 2cadd6e..577cece 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/CollectionConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/CollectionConverter.java
@@ -61,7 +61,7 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
 
     public static <T extends Collection> T convertList(ConversionContext 
context,
                                                        Supplier<T> 
collectionSupplier) {
-        MappingType mappingType = MappingType.valueOf((String)context.getMeta()
+        MappingType mappingType = MappingType.valueOf(context.getMeta()
                 .getOrDefault(VALUE_MAPPING, MappingType.combine.toString()));
         TypeLiteral<?> targetType = context.getTargetType();
         Type[] types = TypeLiteral.getTypeParameters(targetType.getType());
@@ -69,7 +69,7 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
         if(types.length>0) {
             collectionTargetType = TypeLiteral.of(types[0]);
         }else {
-            LOG.warning(String.format("No type information for Collection item 
type in '{0}', using String.",
+            LOG.warning(String.format("No type information for Collection item 
type in '%s', using String.",
                     context.getKey()));
             collectionTargetType = TypeLiteral.of(String.class);
         }
@@ -104,9 +104,9 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                                                                 boolean 
combine) {
         if(!combine){
             values = Collections.singletonList(values.get(0));
-            LOG.finest(String.format("Combine deactivated, only checking for 
collection values in {0}.", values.get(0)));
+            LOG.finest(String.format("Combine deactivated, only checking for 
collection values in %s.", values.get(0)));
         }else{
-            LOG.finest(String.format("Combine activated, checking for 
collection values in {0}.", values));
+            LOG.finest(String.format("Combine activated, checking for 
collection values in %s.", values));
         }
         // First: try value based approach
         for (PropertyValue val : values) {
@@ -120,7 +120,7 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                 }
             }
             if(valuesFound==0) {
-                LOG.finest(() -> String.format("No values found in {0} using 
value evaluation, checking for child nodes...", val));
+                LOG.finest(() -> String.format("No values found in %s using 
value evaluation, checking for child nodes...", val));
                 for(PropertyValue itemNode:val) {
                     String textValue = itemNode.getValue();
                     if(textValue!=null) {
@@ -138,10 +138,10 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                 }
             }
             if(valuesFound==0){
-                LOG.warning(String.format("Failed to convert key '{0}' to 
type: {1}: no values found.",
+                LOG.warning(String.format("Failed to convert key '%s' to type: 
%s: no values found.",
                             val.getKey(), targetType));
             }else{
-                LOG.finest(String.format("Found {2} collection values for key 
'{0}' with type: {1}: no values found.",
+                LOG.finest(String.format("Found %s collection values for key 
'%s' with type: %s: no values found.",
                         val.getKey(), targetType, valuesFound));
             }
         }
@@ -156,9 +156,9 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                                                                 boolean 
combine) {
         if(!combine){
             values = Collections.singletonList(values.get(0));
-            LOG.finest(String.format("Combine deactivated, only checking for 
collection values in {0}.", values.get(0)));
+            LOG.finest(String.format("Combine deactivated, only checking for 
collection values in %s.", values.get(0)));
         }else{
-            LOG.finest(String.format("Combine activated, checking for 
collection values in {0}.", values));
+            LOG.finest(String.format("Combine activated, checking for 
collection values in %s.", values));
         }
         for (PropertyValue val : values) {
             List<String> tokenList = ItemTokenizer.split(val.getValue(), 
context);
@@ -167,7 +167,7 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                 if (o != null) {
                     result.add(o);
                 }else{
-                    LOG.warning(String.format("Failed to convert '{0}' to 
type: {1}, key: {2}",
+                    LOG.warning(String.format("Failed to convert '%s' to type: 
%s, key: %s",
                             token, targetType, val.getQualifiedKey()));
                 }
             }
@@ -192,7 +192,7 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                     if (o != null) {
                         result.add(o);
                     }else{
-                        LOG.warning(String.format("Failed to convert '{0}' to 
type: {1}, key: {2}",
+                        LOG.warning(String.format("Failed to convert '%s' to 
type: %s, key: %s",
                                 itemNode.getValue(), targetType, 
itemNode.getQualifiedKey()));
                     }
                 }
@@ -209,11 +209,11 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
         if (types.length > 1) {
             collectionTargetType = TypeLiteral.of(types[1]);
         } else {
-            LOG.warning(String.format("No type information for Map parameter 
types in '{0}', using String.",
+            LOG.warning(String.format("No type information for Map parameter 
types in '%s', using String.",
                     context.getKey()));
             collectionTargetType = TypeLiteral.of(String.class);
         }
-        MappingType mappingType = MappingType.valueOf((String) 
context.getMeta()
+        MappingType mappingType = MappingType.valueOf(context.getMeta()
                 .getOrDefault("mapping", "value_all"));
         T result = collectionSupplier.get();
         switch (mappingType) {
@@ -241,9 +241,9 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                                                         boolean combine) {
         if(!combine){
             values = Collections.singletonList(values.get(0));
-            LOG.finest(String.format("Combine deactivated, only checking for 
collection values in {0}.", values.get(0)));
+            LOG.finest(String.format("Combine deactivated, only checking for 
collection values in %s.", values.get(0)));
         }else{
-            LOG.finest(String.format("Combine activated, checking for 
collection values in {0}.", values));
+            LOG.finest(String.format("Combine activated, checking for 
collection values in %s.", values));
         }
         for (PropertyValue val : values) {
             List<String> tokenList = ItemTokenizer.split(val.getValue(), 
context);
@@ -253,7 +253,7 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                 if (o != null) {
                     result.put(keyValue[0], o);
                 }else{
-                    LOG.warning(String.format("Failed to convert '{0}' to 
type: {1}, key: {2}",
+                    LOG.warning(String.format("Failed to convert '%s' to type: 
%s, key: %s",
                             keyValue[1], targetType, val.getQualifiedKey()));
                 }
             }
@@ -268,9 +268,9 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                                                        boolean combine) {
         if(!combine){
             values = Collections.singletonList(values.get(0));
-            LOG.finest(String.format("Combine deactivated, only checking for 
collection values in {0}.", values.get(0)));
+            LOG.finest(String.format("Combine deactivated, only checking for 
collection values in %s.", values.get(0)));
         }else{
-            LOG.finest(String.format("Combine activated, checking for 
collection values in {0}.", values));
+            LOG.finest(String.format("Combine activated, checking for 
collection values in %s.", values));
         }
         for (PropertyValue val : values) {
             for(PropertyValue itemNode:val) {
@@ -278,7 +278,7 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
                 if (o != null) {
                     result.put(itemNode.getKey(), o);
                 }else{
-                    LOG.warning(String.format("Failed to convert '{0}' to 
type: {1}, key: {2}",
+                    LOG.warning(String.format("Failed to convert '%s' to type: 
%s, key: %s",
                             itemNode.getValue(), targetType, 
itemNode.getQualifiedKey()));
                 }
             }
@@ -289,11 +289,11 @@ public final class CollectionConverter implements 
PropertyConverter<Collection>
 
     @Override
     public Collection convert(String value, ConversionContext context) {
-        String collectionType = 
(String)context.getMeta().getOrDefault("collection-type", "List");
+        String collectionType = 
context.getMeta().getOrDefault("collection-type", "List");
         if (collectionType.startsWith("java.util.")) {
             collectionType = collectionType.substring("java.util.".length());
         }
-        Collection result = null;
+        Collection result;
         switch (collectionType) {
             case "LinkedList":
                 result = LinkedListConverter.getInstance().convert(value, 
context);
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/ConcurrentHashMapConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/ConcurrentHashMapConverter.java
index 506ac00..d8e5131 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/ConcurrentHashMapConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/ConcurrentHashMapConverter.java
@@ -18,13 +18,10 @@
  */
 package org.apache.tamaya.collections;
 
-import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
-import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/HashSetConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/HashSetConverter.java
index 47a5044..4cf8d6b 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/HashSetConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/HashSetConverter.java
@@ -18,13 +18,10 @@
  */
 package org.apache.tamaya.collections;
 
-import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
 import java.util.HashSet;
-import java.util.List;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/ItemTokenizer.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/ItemTokenizer.java
index 9287497..1de8730 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/ItemTokenizer.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/ItemTokenizer.java
@@ -53,7 +53,7 @@ final class ItemTokenizer {
      * @return the tokenized value as createList, in order of occurrence.
      */
     public static List<String> split(String value, ConversionContext ctx){
-        String itemSeparator = 
(String)ctx.getMeta().getOrDefault(ITEM_SEPARATOR, DEFAULT_LIST_ITEM_SEPARATOR);
+        String itemSeparator = ctx.getMeta().getOrDefault(ITEM_SEPARATOR, 
DEFAULT_LIST_ITEM_SEPARATOR);
         return split(value, itemSeparator);
     }
 
@@ -90,7 +90,7 @@ final class ItemTokenizer {
      * @return an array of length 2, with the trimmed and parsed key/value 
pair.
      */
     public static String[] splitMapEntry(String mapEntry, ConversionContext 
ctx){
-        String entrySeparator = 
(String)ctx.getMeta().getOrDefault(MAP_ENTRY_SEPARATOR, 
DEFAULT_MAP_ENTRY_SEPARATOR);
+        String entrySeparator = 
ctx.getMeta().getOrDefault(MAP_ENTRY_SEPARATOR, DEFAULT_MAP_ENTRY_SEPARATOR);
         return splitMapEntry(mapEntry, entrySeparator);
     }
 
@@ -149,7 +149,7 @@ final class ItemTokenizer {
         } else {
             ConversionContext newContext = new 
ConversionContext.Builder(context.getConfiguration(), context.getKey(),
                     targetType).build();
-            T result = null;
+            T result;
             for (PropertyConverter<T> conv : valueConverters) {
                 try {
                     result = conv.convert(value, newContext);
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/LinkedListConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/LinkedListConverter.java
index b769ab6..f6cde06 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/LinkedListConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/LinkedListConverter.java
@@ -18,13 +18,10 @@
  */
 package org.apache.tamaya.collections;
 
-import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
 import java.util.LinkedList;
-import java.util.List;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/ListConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/ListConverter.java
index 769be12..42ab036 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/ListConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/ListConverter.java
@@ -23,7 +23,6 @@ import org.apache.tamaya.spi.ConversionContext;
 
 import java.util.Collections;
 import java.util.List;
-import java.util.function.Supplier;
 
 /**
  *  PropertyConverter for gnerating a LIST representation of values.
@@ -35,13 +34,13 @@ public class ListConverter implements 
PropertyConverter<List> {
         String collectionType = "ArrayList";
         boolean readOnly = false;
         if(context!=null) {
-            collectionType = 
(String)context.getMeta().getOrDefault("collection-type", "ArrayList");
+            collectionType = context.getMeta().getOrDefault("collection-type", 
"ArrayList");
             if (collectionType.startsWith("java.util.")) {
                 collectionType = 
collectionType.substring("java.util.".length());
             }
-            readOnly = 
Boolean.parseBoolean((String)context.getMeta().getOrDefault("read-only", 
"false"));
+            readOnly = 
Boolean.parseBoolean(context.getMeta().getOrDefault("read-only", "false"));
         }
-        List result = null;
+        List result;
         switch(collectionType){
             case "LinkedList":
                 result = LinkedListConverter.getInstance().convert(value, 
context);
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/MapConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/MapConverter.java
index 08fefff..406e35f 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/MapConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/MapConverter.java
@@ -34,13 +34,13 @@ public class MapConverter implements PropertyConverter<Map> 
{
         String collectionType = "HashMap";
         boolean readOnly = false;
         if(context!=null) {
-            collectionType = 
(String)context.getMeta().getOrDefault("collection-type", "HashMap");
+            collectionType = context.getMeta().getOrDefault("collection-type", 
"HashMap");
             if (collectionType.startsWith("java.util.")) {
                 collectionType = 
collectionType.substring("java.util.".length());
             }
-            readOnly = 
Boolean.parseBoolean((String)context.getMeta().getOrDefault("read-only", 
"false"));
+            readOnly = 
Boolean.parseBoolean(context.getMeta().getOrDefault("read-only", "false"));
         }
-        Map result = null;
+        Map result;
         switch(collectionType){
             case "TreeMap":
             case "SortedMap":
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/SetConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/SetConverter.java
index b66ef5b..1a8adce 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/SetConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/SetConverter.java
@@ -34,11 +34,11 @@ public class SetConverter implements PropertyConverter<Set> 
{
         String collectionType = "Set";
         boolean readOnly = false;
         if(context!=null) {
-            collectionType = 
(String)context.getMeta().getOrDefault("collection-type", "HashSet");
+            collectionType = context.getMeta().getOrDefault("collection-type", 
"HashSet");
             if (collectionType.startsWith("java.util.")) {
                 collectionType = 
collectionType.substring("java.util.".length());
             }
-            readOnly = 
Boolean.parseBoolean((String)context.getMeta().getOrDefault("read-only", 
"false"));
+            readOnly = 
Boolean.parseBoolean(context.getMeta().getOrDefault("read-only", "false"));
         }
         Set result;
         switch(collectionType){
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/SortedSetConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/SortedSetConverter.java
index acac96c..eb4258b 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/SortedSetConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/SortedSetConverter.java
@@ -21,9 +21,7 @@ package org.apache.tamaya.collections;
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
-import java.util.Collections;
 import java.util.SortedSet;
-import java.util.TreeSet;
 
 /**
  *  PropertyConverter for gnerating a LIST representation of values.
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/TreeMapConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/TreeMapConverter.java
index b287dd9..76256c9 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/TreeMapConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/TreeMapConverter.java
@@ -18,13 +18,10 @@
  */
 package org.apache.tamaya.collections;
 
-import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
-import java.util.List;
 import java.util.TreeMap;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
diff --git 
a/modules/collections/src/main/java/org/apache/tamaya/collections/TreeSetConverter.java
 
b/modules/collections/src/main/java/org/apache/tamaya/collections/TreeSetConverter.java
index c5651f5..1003ae6 100644
--- 
a/modules/collections/src/main/java/org/apache/tamaya/collections/TreeSetConverter.java
+++ 
b/modules/collections/src/main/java/org/apache/tamaya/collections/TreeSetConverter.java
@@ -21,10 +21,7 @@ package org.apache.tamaya.collections;
 import org.apache.tamaya.spi.ConversionContext;
 import org.apache.tamaya.spi.PropertyConverter;
 
-import java.util.Collections;
-import java.util.List;
 import java.util.TreeSet;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
diff --git 
a/modules/collections/src/test/java/org/apache/tamaya/collections/CollectionsTypedReadOnlyTests.java
 
b/modules/collections/src/test/java/org/apache/tamaya/collections/CollectionsTypedReadOnlyTests.java
index c330658..56f8ea1 100644
--- 
a/modules/collections/src/test/java/org/apache/tamaya/collections/CollectionsTypedReadOnlyTests.java
+++ 
b/modules/collections/src/test/java/org/apache/tamaya/collections/CollectionsTypedReadOnlyTests.java
@@ -20,7 +20,6 @@ package org.apache.tamaya.collections;
 
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.TypeLiteral;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.util.*;
@@ -94,7 +93,7 @@ public class CollectionsTypedReadOnlyTests {
     @Test
     public void testTreeSet_2(){
         Configuration config = Configuration.current();
-        Set<String> items = items = (Set<String>) config.get("typed.treeset", 
Set.class);
+        Set<String> items = (Set<String>) config.get("typed.treeset", 
Set.class);
         assertThat(items).isNotNull().isNotEmpty().hasSize(10);
         items.add("test");
     }
diff --git 
a/modules/consul/src/main/java/org/apache/tamaya/consul/AbstractConsulPropertySource.java
 
b/modules/consul/src/main/java/org/apache/tamaya/consul/AbstractConsulPropertySource.java
index 0b2b871..48303e1 100644
--- 
a/modules/consul/src/main/java/org/apache/tamaya/consul/AbstractConsulPropertySource.java
+++ 
b/modules/consul/src/main/java/org/apache/tamaya/consul/AbstractConsulPropertySource.java
@@ -126,7 +126,7 @@ implements MutablePropertySource{
      * @return the server list, not null.
      */
     public List<String> getServer() {
-        return this.consulBackends.stream().map(s -> 
s.toString()).collect(Collectors.toList());
+        return 
this.consulBackends.stream().map(HostAndPort::toString).collect(Collectors.toList());
     }
 
     /**
@@ -185,7 +185,7 @@ implements MutablePropertySource{
                     props.put("lockIndex", 
String.valueOf(value.getLockIndex()));
                     props.put("flags", String.valueOf(value.getFlags()));
                     props.put("source", getName());
-                    val = PropertyValue.createValue(reqKey, 
value.getValue().get())
+                    val = PropertyValue.createValue(reqKey, 
value.getValue().orElse(null))
                         .setMeta(props);
                     break;
                 }
diff --git 
a/modules/consul/src/main/java/org/apache/tamaya/consul/ConsulBackendConfig.java
 
b/modules/consul/src/main/java/org/apache/tamaya/consul/ConsulBackendConfig.java
index c7b0c14..1ab4d61 100644
--- 
a/modules/consul/src/main/java/org/apache/tamaya/consul/ConsulBackendConfig.java
+++ 
b/modules/consul/src/main/java/org/apache/tamaya/consul/ConsulBackendConfig.java
@@ -18,12 +18,8 @@
  */
 package org.apache.tamaya.consul;
 
-import com.google.common.net.HostAndPort;
-
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
diff --git 
a/modules/consul/src/main/java/org/apache/tamaya/consul/ConsulPropertySource.java
 
b/modules/consul/src/main/java/org/apache/tamaya/consul/ConsulPropertySource.java
index 84612b3..3e49c58 100644
--- 
a/modules/consul/src/main/java/org/apache/tamaya/consul/ConsulPropertySource.java
+++ 
b/modules/consul/src/main/java/org/apache/tamaya/consul/ConsulPropertySource.java
@@ -18,19 +18,7 @@
  */
 package org.apache.tamaya.consul;
 
-import com.google.common.base.Optional;
-import com.google.common.net.HostAndPort;
-import com.orbitz.consul.Consul;
-import com.orbitz.consul.KeyValueClient;
-import com.orbitz.consul.model.kv.Value;
-import org.apache.tamaya.mutableconfig.ConfigChangeRequest;
-import org.apache.tamaya.mutableconfig.spi.MutablePropertySource;
-import org.apache.tamaya.spi.ChangeSupport;
-import org.apache.tamaya.spi.PropertyValue;
-import org.apache.tamaya.spisupport.propertysource.BasePropertySource;
-
 import java.util.*;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
diff --git 
a/modules/consul/src/test/java/org/apache/tamaya/consul/ConsulWriteTest.java 
b/modules/consul/src/test/java/org/apache/tamaya/consul/ConsulWriteTest.java
index f7700b0..e9d738a 100644
--- a/modules/consul/src/test/java/org/apache/tamaya/consul/ConsulWriteTest.java
+++ b/modules/consul/src/test/java/org/apache/tamaya/consul/ConsulWriteTest.java
@@ -20,11 +20,9 @@ package org.apache.tamaya.consul;
 
 import java.net.MalformedURLException;
 import java.net.URISyntaxException;
-import java.util.Map;
 import java.util.UUID;
 
 import org.apache.tamaya.mutableconfig.ConfigChangeRequest;
-import org.apache.tamaya.spi.PropertyValue;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -66,7 +64,7 @@ public class ConsulWriteTest {
         ConfigChangeRequest request = new ConfigChangeRequest("testDelete");
         request.put(taID, "testDelete");
         propertySource.applyChange(request);
-        
assertThat(taID.toString()).isEqualTo(propertySource.get("testDelete").getValue());
+        
assertThat(taID).isEqualTo(propertySource.get("testDelete").getValue());
         assertThat(propertySource.get("_testDelete.createdIndex")).isNotNull();
         request = new ConfigChangeRequest("testDelete2");
         request.remove("testDelete");
diff --git 
a/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdAccessor.java 
b/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdAccessor.java
index 85313ea..7c55d9a 100644
--- a/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdAccessor.java
+++ b/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdAccessor.java
@@ -56,7 +56,7 @@ class EtcdAccessor {
     /**
      * Timeout in seconds.
      */
-    private int timeout = 2;
+    private int timeout;
     /**
      * Timeout in seconds.
      */
diff --git 
a/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdPropertySource.java 
b/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdPropertySource.java
index d168ab0..546171b 100644
--- a/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdPropertySource.java
+++ b/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdPropertySource.java
@@ -18,8 +18,6 @@
  */
 package org.apache.tamaya.etcd;
 
-import org.apache.tamaya.spi.PropertyValue;
-
 import java.util.*;
 import java.util.logging.Logger;
 
diff --git 
a/modules/events/src/main/java/org/apache/tamaya/events/ConfigEventManager.java 
b/modules/events/src/main/java/org/apache/tamaya/events/ConfigEventManager.java
index 636fbb8..46e47bd 100644
--- 
a/modules/events/src/main/java/org/apache/tamaya/events/ConfigEventManager.java
+++ 
b/modules/events/src/main/java/org/apache/tamaya/events/ConfigEventManager.java
@@ -41,7 +41,7 @@ public final class ConfigEventManager {
     /**
      * The backing SPI.
      */
-    private static final ConfigEventManagerSpi spi(ClassLoader classLoader){
+    private static ConfigEventManagerSpi spi(ClassLoader classLoader){
         ConfigEventManagerSpi spi = 
ServiceContextManager.getServiceContext(classLoader)
                 .getService(ConfigEventManagerSpi.class);
         if(spi==null){
diff --git 
a/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChangeBuilder.java
 
b/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChangeBuilder.java
index 6546338..1ce2d4a 100644
--- 
a/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChangeBuilder.java
+++ 
b/modules/events/src/main/java/org/apache/tamaya/events/ConfigurationChangeBuilder.java
@@ -19,7 +19,6 @@
 package org.apache.tamaya.events;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 
 import java.beans.PropertyChangeEvent;
 import java.util.Collection;
diff --git 
a/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserver.java
 
b/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserver.java
index e835517..8852769 100644
--- 
a/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserver.java
+++ 
b/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigChangeObserver.java
@@ -23,7 +23,6 @@ import org.apache.tamaya.ConfigurationSnapshot;
 import org.apache.tamaya.events.ConfigEventManager;
 import org.apache.tamaya.events.ConfigurationChange;
 import org.apache.tamaya.events.ConfigurationChangeBuilder;
-import org.apache.tamaya.events.FrozenConfiguration;
 
 import java.util.*;
 import java.util.logging.Logger;
diff --git 
a/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigEventManagerSpi.java
 
b/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigEventManagerSpi.java
index cbe8937..5cf945a 100644
--- 
a/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigEventManagerSpi.java
+++ 
b/modules/events/src/main/java/org/apache/tamaya/events/internal/DefaultConfigEventManagerSpi.java
@@ -76,11 +76,7 @@ public class DefaultConfigEventManagerSpi implements 
ConfigEventManagerSpi, Clas
 
        @Override
     public <T extends ConfigEvent> void addListener(ConfigEventListener l, 
Class<T> eventType){
-        List<ConfigEventListener> ls = listeners.get(eventType);
-        if(ls==null){
-            ls = Collections.synchronizedList(new 
ArrayList<ConfigEventListener>());
-            listeners.put(eventType, ls);
-        }
+        final List<ConfigEventListener> ls = 
listeners.computeIfAbsent(eventType, k -> Collections.synchronizedList(new 
ArrayList<>()));
         synchronized (ls){
             if(!ls.contains(l)){
                 ls.add(l);
@@ -95,7 +91,7 @@ public class DefaultConfigEventManagerSpi implements 
ConfigEventManagerSpi, Clas
 
     @Override
     public <T extends ConfigEvent> void removeListener(ConfigEventListener l, 
Class<T> eventType) {
-        List<ConfigEventListener> targets = this.listeners.get(eventType);
+        final List<ConfigEventListener> targets = 
this.listeners.get(eventType);
         if(targets!=null) {
             // forward to explicit listeners
             synchronized (targets) {
@@ -106,7 +102,7 @@ public class DefaultConfigEventManagerSpi implements 
ConfigEventManagerSpi, Clas
 
     @Override
     public Collection<? extends ConfigEventListener> getListeners(Class<? 
extends ConfigEvent> eventType) {
-        List<ConfigEventListener> targets = this.listeners.get(eventType);
+        final List<ConfigEventListener> targets = 
this.listeners.get(eventType);
         if(targets!=null){
             synchronized(targets){
                 return new ArrayList<>(targets);
@@ -117,7 +113,7 @@ public class DefaultConfigEventManagerSpi implements 
ConfigEventManagerSpi, Clas
 
     @Override
     public Collection<? extends ConfigEventListener> getListeners() {
-        Set<ConfigEventListener> targets = new HashSet<>();
+        final Set<ConfigEventListener> targets = new HashSet<>();
         for(List<ConfigEventListener> l:this.listeners.values()){
             targets.addAll(l);
         }
diff --git 
a/modules/events/src/test/java/org/apache/tamaya/events/ConfigurationChangeBuilderTest.java
 
b/modules/events/src/test/java/org/apache/tamaya/events/ConfigurationChangeBuilderTest.java
index d0ee77a..0c2bca6 100644
--- 
a/modules/events/src/test/java/org/apache/tamaya/events/ConfigurationChangeBuilderTest.java
+++ 
b/modules/events/src/test/java/org/apache/tamaya/events/ConfigurationChangeBuilderTest.java
@@ -53,7 +53,7 @@ public class ConfigurationChangeBuilderTest {
                doReturn(emptyMap()).when(oc).getProperties();
                doReturn(null).when(oc).get(eq("a"));
 
-               Map<String, String> valuesNC = new HashMap<String, String>();
+               Map<String, String> valuesNC = new HashMap<>();
                valuesNC.put("a", "19");
 
                doReturn(valuesNC).when(nc).getProperties();
@@ -76,7 +76,7 @@ public class ConfigurationChangeBuilderTest {
                Configuration oc = Mockito.mock(Configuration.class, new 
MethodNotMockedAnswer());
                Configuration nc = Mockito.mock(Configuration.class, new 
MethodNotMockedAnswer());
 
-               Map<String, String> valuesOC = new HashMap<String, String>();
+               Map<String, String> valuesOC = new HashMap<>();
                valuesOC.put("a", "19");
 
                doReturn(valuesOC).when(oc).getProperties();
@@ -102,14 +102,14 @@ public class ConfigurationChangeBuilderTest {
                Configuration oc = Mockito.mock(Configuration.class, new 
MethodNotMockedAnswer());
                Configuration nc = Mockito.mock(Configuration.class, new 
MethodNotMockedAnswer());
 
-               Map<String, String> valuesOC = new HashMap<String, String>();
+               Map<String, String> valuesOC = new HashMap<>();
                valuesOC.put("a", "91");
 
                doReturn(valuesOC).when(oc).getProperties();
                doReturn("91").when(oc).get(eq("a"));
                doReturn("old configuration").when(oc).toString();
 
-               Map<String, String> valuesNC = new HashMap<String, String>();
+               Map<String, String> valuesNC = new HashMap<>();
                valuesNC.put("a", "19");
 
                doReturn(valuesNC).when(nc).getProperties();
diff --git 
a/modules/events/src/test/java/org/apache/tamaya/events/RandomPropertySource.java
 
b/modules/events/src/test/java/org/apache/tamaya/events/RandomPropertySource.java
index 6b77d07..b8c1721 100644
--- 
a/modules/events/src/test/java/org/apache/tamaya/events/RandomPropertySource.java
+++ 
b/modules/events/src/test/java/org/apache/tamaya/events/RandomPropertySource.java
@@ -29,7 +29,7 @@ import java.util.Map;
  */
 public class RandomPropertySource implements PropertySource{
 
-    private Map<String, PropertyValue> data = new HashMap<>();
+    private final Map<String, PropertyValue> data = new HashMap<>();
 
     @Override
     public int getOrdinal() {
diff --git 
a/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/FileChangeListener.java
 
b/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/FileChangeListener.java
index af8b05e..3d7dd35 100644
--- 
a/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/FileChangeListener.java
+++ 
b/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/FileChangeListener.java
@@ -29,7 +29,6 @@ import java.nio.file.WatchEvent;
 import java.nio.file.WatchKey;
 import java.nio.file.WatchService;
 import java.util.TimerTask;
-import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -74,7 +73,7 @@ class FileChangeListener extends TimerTask {
 
     @Override
     public void run() {
-        if (watchService!=null || directory!=null) {
+        if (watchService==null || directory==null) {
             return;
         }
         try {
diff --git 
a/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/ObservingPropertySourceProvider.java
 
b/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/ObservingPropertySourceProvider.java
index 727aaa8..0a97925 100644
--- 
a/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/ObservingPropertySourceProvider.java
+++ 
b/modules/events/src/test/java/org/apache/tamaya/events/folderobserver/ObservingPropertySourceProvider.java
@@ -26,8 +26,6 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.*;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -53,7 +51,7 @@ public class ObservingPropertySourceProvider implements 
PropertySourceProvider,
     /**
      * The current active property sources of this provider.
      */
-    private final List<PropertySource> propertySources = 
Collections.synchronizedList(new LinkedList<PropertySource>());
+    private final List<PropertySource> propertySources = 
Collections.synchronizedList(new LinkedList<>());
     /**
      * The thread pool used.
      */
diff --git 
a/modules/formats/base/src/main/java/org/apache/tamaya/format/BaseFormatPropertySourceProvider.java
 
b/modules/formats/base/src/main/java/org/apache/tamaya/format/BaseFormatPropertySourceProvider.java
index 5abffe5..1db36f8 100644
--- 
a/modules/formats/base/src/main/java/org/apache/tamaya/format/BaseFormatPropertySourceProvider.java
+++ 
b/modules/formats/base/src/main/java/org/apache/tamaya/format/BaseFormatPropertySourceProvider.java
@@ -20,7 +20,6 @@ package org.apache.tamaya.format;
 
 import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertySourceProvider;
-import org.apache.tamaya.spi.PropertyValue;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git 
a/modules/formats/base/src/main/java/org/apache/tamaya/format/ConfigurationFormats.java
 
b/modules/formats/base/src/main/java/org/apache/tamaya/format/ConfigurationFormats.java
index 81f9f45..f5a43ad 100644
--- 
a/modules/formats/base/src/main/java/org/apache/tamaya/format/ConfigurationFormats.java
+++ 
b/modules/formats/base/src/main/java/org/apache/tamaya/format/ConfigurationFormats.java
@@ -32,7 +32,6 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import org.apache.tamaya.ConfigException;
-import org.apache.tamaya.functions.Predicate;
 import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.ServiceContextManager;
 
diff --git 
a/modules/formats/base/src/main/java/org/apache/tamaya/format/MappedConfigurationDataPropertySource.java
 
b/modules/formats/base/src/main/java/org/apache/tamaya/format/MappedConfigurationDataPropertySource.java
index 341611f..4790883 100644
--- 
a/modules/formats/base/src/main/java/org/apache/tamaya/format/MappedConfigurationDataPropertySource.java
+++ 
b/modules/formats/base/src/main/java/org/apache/tamaya/format/MappedConfigurationDataPropertySource.java
@@ -22,7 +22,6 @@ import org.apache.tamaya.functions.Supplier;
 import org.apache.tamaya.spi.PropertyValue;
 import org.apache.tamaya.spisupport.propertysource.BasePropertySource;
 
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
diff --git 
a/modules/formats/base/src/main/java/org/apache/tamaya/format/formats/IniConfigurationFormat.java
 
b/modules/formats/base/src/main/java/org/apache/tamaya/format/formats/IniConfigurationFormat.java
index 500135c..2a3d40b 100644
--- 
a/modules/formats/base/src/main/java/org/apache/tamaya/format/formats/IniConfigurationFormat.java
+++ 
b/modules/formats/base/src/main/java/org/apache/tamaya/format/formats/IniConfigurationFormat.java
@@ -30,6 +30,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -55,7 +56,7 @@ public class IniConfigurationFormat implements 
ConfigurationFormat {
     throws IOException{
         PropertyValue data = PropertyValue.createObject();
         data.setMeta("resource", resource);
-        try (BufferedReader reader = new BufferedReader(new 
InputStreamReader(inputStream, "UTF-8"))) {
+        try (BufferedReader reader = new BufferedReader(new 
InputStreamReader(inputStream, StandardCharsets.UTF_8))) {
             String line = reader.readLine();
             int lineNum = 0;
             Map<String,PropertyValue> sections = new HashMap<>();
@@ -81,15 +82,15 @@ public class IniConfigurationFormat implements 
ConfigurationFormat {
                     String key = line.substring(0, sep);
                     String value = line.substring(sep + 1);
                     if (section != null) {
-                        final String sectionName = section;
-                        ObjectValue sectionPV = 
(ObjectValue)sections.computeIfAbsent(section,
-                                s -> PropertyValue.createObject(sectionName)
+                        final String finalSection = section;
+                        ObjectValue sectionPV = 
(ObjectValue)sections.computeIfAbsent(finalSection,
+                                s -> PropertyValue.createObject(finalSection)
                         .setMeta(ConfigurationFormat.class.getName(), this));
                         sectionPV.setValue(key, value).setMeta("source", 
resource)
                                 .setMeta(ConfigurationFormat.class.getName(), 
this);
                     } else {
                         String finalSection = "default";
-                        ObjectValue sectionBuilder = 
(ObjectValue)sections.computeIfAbsent(section,
+                        ObjectValue sectionBuilder = 
(ObjectValue)sections.computeIfAbsent(finalSection,
                                 s -> 
PropertyValue.createObject(finalSection).setMeta("source", resource));
                         sectionBuilder.setValue(key, value).setMeta("source", 
resource)
                                 .setMeta(ConfigurationFormat.class.getName(), 
this);
diff --git 
a/modules/formats/base/src/test/java/org/apache/tamaya/format/FormatPropertySourceProviderTest.java
 
b/modules/formats/base/src/test/java/org/apache/tamaya/format/FormatPropertySourceProviderTest.java
index e8b1024..9d18f57 100644
--- 
a/modules/formats/base/src/test/java/org/apache/tamaya/format/FormatPropertySourceProviderTest.java
+++ 
b/modules/formats/base/src/test/java/org/apache/tamaya/format/FormatPropertySourceProviderTest.java
@@ -43,7 +43,7 @@ public class FormatPropertySourceProviderTest
     @Override
     protected Collection<PropertySource> getPropertySources(ConfigurationData 
data) {
         PropertySource ps = new MappedConfigurationDataPropertySource(data);
-        ArrayList<PropertySource> result = new ArrayList<PropertySource>();
+        ArrayList<PropertySource> result = new ArrayList<>();
         result.add(ps);
         return result;
     }
diff --git 
a/modules/formats/base/src/test/java/org/apache/tamaya/format/MappedConfigurationDataPropertySourceTest.java
 
b/modules/formats/base/src/test/java/org/apache/tamaya/format/MappedConfigurationDataPropertySourceTest.java
index d883bfd..fa3ca0f 100644
--- 
a/modules/formats/base/src/test/java/org/apache/tamaya/format/MappedConfigurationDataPropertySourceTest.java
+++ 
b/modules/formats/base/src/test/java/org/apache/tamaya/format/MappedConfigurationDataPropertySourceTest.java
@@ -18,10 +18,6 @@
  */
 package org.apache.tamaya.format;
 
-import org.apache.tamaya.format.formats.PropertiesFormat;
-import org.apache.tamaya.spi.PropertySource;
-import org.junit.Test;
-
 /**
  * Tests for {@link MappedConfigurationDataPropertySource}.
  */
diff --git 
a/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONDataBuilder.java
 
b/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONDataBuilder.java
index 67283aa..02b2203 100644
--- 
a/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONDataBuilder.java
+++ 
b/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONDataBuilder.java
@@ -36,7 +36,6 @@ import java.util.Objects;
 class JSONDataBuilder {
 
     private String resource;
-    private PropertyValue data;
     private JsonValue root;
 
     JSONDataBuilder(String resource, JsonValue root) {
@@ -108,13 +107,14 @@ class JSONDataBuilder {
     }
 
     public PropertyValue build() {
+        PropertyValue data;
         if (root instanceof JsonObject) {
             data = PropertyValue.createObject("");
             addJsonObject((JsonObject)root, (ObjectValue) data);
         } else if (root instanceof JsonArray) {
             JsonArray array = (JsonArray)root;
             data = PropertyValue.createList("");
-            addArray(array, (ListValue)data);
+            addArray(array, (ListValue) data);
         } else {
             throw new ConfigException("Unknown JsonType encountered: " + 
root.getClass().getName());
         }
diff --git 
a/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONPropertySource.java
 
b/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONPropertySource.java
index 2353e28..df7f599 100644
--- 
a/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONPropertySource.java
+++ 
b/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONPropertySource.java
@@ -26,6 +26,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
@@ -53,7 +54,7 @@ public class JSONPropertySource implements PropertySource {
     /** The evaluated ordinal. */
     private int ordinal;
     /** The JSON reader factory used. */
-    private JsonReaderFactory readerFactory = initReaderFactory();
+    private JsonReaderFactory readerFactory;
 
     /** Initializes the factory to be used for creating readers. */
     private JsonReaderFactory initReaderFactory() {
@@ -128,13 +129,13 @@ public class JSONPropertySource implements PropertySource 
{
      */
     protected Map<String, PropertyValue> readConfig(URL urlResource) throws 
IOException{
         try (InputStream is = urlResource.openStream()) {
-            JsonStructure root = this.readerFactory.createReader(is, 
Charset.forName("UTF-8")).read();
+            JsonStructure root = this.readerFactory.createReader(is, 
StandardCharsets.UTF_8).read();
 
             JSONDataBuilder visitor = new 
JSONDataBuilder(urlResource.toString(), root);
             Map<String, String> values = visitor.build().toMap();
             Map<String, PropertyValue> result = new HashMap<>();
             for(Map.Entry<String,String> en:values.entrySet()){
-                result.put(en.getKey(), PropertyValue.of(en.getKey(), 
en.getValue(), getName()));
+                result.put(en.getKey(), PropertyValue.createValue(en.getKey(), 
en.getValue()).setMeta("source", getName()));
             }
             return result;
         }catch(IOException ioe){
diff --git 
a/modules/formats/yaml/src/main/java/org/apache/tamaya/yaml/YAMLFormat.java 
b/modules/formats/yaml/src/main/java/org/apache/tamaya/yaml/YAMLFormat.java
index fae48ce..f7d8102 100644
--- a/modules/formats/yaml/src/main/java/org/apache/tamaya/yaml/YAMLFormat.java
+++ b/modules/formats/yaml/src/main/java/org/apache/tamaya/yaml/YAMLFormat.java
@@ -79,7 +79,7 @@ public class YAMLFormat implements ConfigurationFormat {
                 throw new ConfigException("Unknown YamlType encountered: " + 
config.getClass().getName());
             }
             if(LOG.isLoggable(Level.FINEST)){
-                LOG.finest(String.format("Read data from " + resource + " : " 
+ data.asString()));
+                LOG.finest(String.format("Read data from %s : %s", resource, 
data.asString()));
             }
             return new ConfigurationData(resource, this, data);
         }
@@ -90,18 +90,18 @@ public class YAMLFormat implements ConfigurationFormat {
 
 
     private void addObject(Map<String,Object> values, ObjectValue dataNode){
-        values.entrySet().forEach(en -> {
-            if (en.getValue() instanceof List) {
-                ListValue list = dataNode.setList(en.getKey());
-                addList((List) en.getValue(), list);
-            } else if (en.getValue() instanceof Map) {
-                ObjectValue object = dataNode.setObject(en.getKey());
-                addObject((Map) en.getValue(), object);
-            } else{
-                if (en.getValue() == null) {
-                    dataNode.setValue(en.getKey(), null);
-                }else {
-                    dataNode.setValue(en.getKey(), 
String.valueOf(en.getValue()));
+        values.forEach((key, value) -> {
+            if (value instanceof List) {
+                ListValue list = dataNode.setList(key);
+                addList((List) value, list);
+            } else if (value instanceof Map) {
+                ObjectValue object = dataNode.setObject(key);
+                addObject((Map) value, object);
+            } else {
+                if (value == null) {
+                    dataNode.setValue(key, null);
+                } else {
+                    dataNode.setValue(key, String.valueOf(value));
                 }
             }
         });
diff --git 
a/modules/formats/yaml/src/main/java/org/apache/tamaya/yaml/YAMLPropertySource.java
 
b/modules/formats/yaml/src/main/java/org/apache/tamaya/yaml/YAMLPropertySource.java
index a2cfda5..1bb093c 100644
--- 
a/modules/formats/yaml/src/main/java/org/apache/tamaya/yaml/YAMLPropertySource.java
+++ 
b/modules/formats/yaml/src/main/java/org/apache/tamaya/yaml/YAMLPropertySource.java
@@ -67,7 +67,8 @@ public class YAMLPropertySource implements PropertySource {
         ConfigurationData data = 
format.readConfiguration(urlResource.toString(), resource.openStream());
         this.values = new HashMap<>();
         for(Map.Entry<String,String> 
en:data.getData().get(0).toMap().entrySet()){
-            this.values.put(en.getKey(), PropertyValue.of(en.getKey(), 
en.getValue(), getName()));
+            this.values.put(en.getKey(), 
PropertyValue.createValue(en.getKey(), en.getValue()).setMeta("source",
+                    getName()));
         }
         if (data.getData().get(0).toMap().containsKey(TAMAYA_ORDINAL)) {
             this.ordinal = 
Integer.parseInt(data.getData().get(0).toMap().get(TAMAYA_ORDINAL));
diff --git 
a/modules/formats/yaml/src/test/java/org/apache/tamaya/yaml/YAMLFormatTest.java 
b/modules/formats/yaml/src/test/java/org/apache/tamaya/yaml/YAMLFormatTest.java
index b45f63f..69188fe 100644
--- 
a/modules/formats/yaml/src/test/java/org/apache/tamaya/yaml/YAMLFormatTest.java
+++ 
b/modules/formats/yaml/src/test/java/org/apache/tamaya/yaml/YAMLFormatTest.java
@@ -80,8 +80,7 @@ public class YAMLFormatTest {
        }
 
        private URL getContactYaml() {
-               URL configURL = 
YAMLPropertySourceTest.class.getResource("/configs/valid/contact.yaml");
-               return configURL;
+        return 
YAMLPropertySourceTest.class.getResource("/configs/valid/contact.yaml");
        }
 
 }
diff --git 
a/modules/functions/src/main/java/org/apache/tamaya/functions/ConfigWrappingPropertySource.java
 
b/modules/functions/src/main/java/org/apache/tamaya/functions/ConfigWrappingPropertySource.java
index 17c2ffb..d3c6fd5 100644
--- 
a/modules/functions/src/main/java/org/apache/tamaya/functions/ConfigWrappingPropertySource.java
+++ 
b/modules/functions/src/main/java/org/apache/tamaya/functions/ConfigWrappingPropertySource.java
@@ -60,14 +60,14 @@ final class ConfigWrappingPropertySource implements 
PropertySource {
 
     @Override
     public PropertyValue get(String key) {
-        return PropertyValue.of(key, config.get(key), getName());
+        return PropertyValue.createValue(key, 
config.get(key)).setMeta("source", getName());
     }
 
     @Override
     public Map<String, PropertyValue> getProperties() {
         Map<String,PropertyValue> result = new HashMap<>();
         for(Map.Entry<String,String> en:config.getProperties().entrySet()){
-            result.put(en.getKey(), PropertyValue.of(en.getKey(), 
en.getValue(), getName()));
+            result.put(en.getKey(), PropertyValue.createValue(en.getKey(), 
en.getValue()).setMeta("source", getName()));
         }
         return result;
     }
diff --git 
a/modules/functions/src/main/java/org/apache/tamaya/functions/EnrichedPropertySource.java
 
b/modules/functions/src/main/java/org/apache/tamaya/functions/EnrichedPropertySource.java
index 4707309..480cefc 100644
--- 
a/modules/functions/src/main/java/org/apache/tamaya/functions/EnrichedPropertySource.java
+++ 
b/modules/functions/src/main/java/org/apache/tamaya/functions/EnrichedPropertySource.java
@@ -45,7 +45,8 @@ class EnrichedPropertySource implements PropertySource {
     EnrichedPropertySource(PropertySource propertySource, Map<String, String> 
properties, boolean overriding) {
         this.basePropertySource = Objects.requireNonNull(propertySource);
         for(Map.Entry<String,String> en:properties.entrySet()){
-            this.addedProperties.put(en.getKey(), 
PropertyValue.of(en.getKey(), en.getValue(), propertySource.getName()));
+            this.addedProperties.put(en.getKey(), 
PropertyValue.createValue(en.getKey(), en.getValue())
+                    .setMeta("source", propertySource.getName()));
         }
         this.overriding = overriding;
     }
diff --git 
a/modules/functions/src/main/java/org/apache/tamaya/functions/MappedPropertySource.java
 
b/modules/functions/src/main/java/org/apache/tamaya/functions/MappedPropertySource.java
index 17dd478..be23c28 100644
--- 
a/modules/functions/src/main/java/org/apache/tamaya/functions/MappedPropertySource.java
+++ 
b/modules/functions/src/main/java/org/apache/tamaya/functions/MappedPropertySource.java
@@ -68,7 +68,7 @@ class MappedPropertySource implements PropertySource {
         for (PropertyValue en : this.propertySource.getProperties().values()) {
             String targetKey = keyMapper.mapKey(en.getKey());
             if (targetKey != null) {
-                result.put(targetKey, PropertyValue.of(targetKey, 
en.getValue(), getName()));
+                result.put(targetKey, PropertyValue.createValue(targetKey, 
en.getValue()).setMeta("source", getName()));
             }
         }
         return result;
@@ -99,7 +99,6 @@ class MappedPropertySource implements PropertySource {
         Objects.requireNonNull(key, "Key must be given.");
 
         String mappedKey = keyMapper.mapKey(key);
-        PropertyValue result = null;
 
         if (mappedKey != null) {
             for (PropertyValue property : 
propertySource.getProperties().values()) {
@@ -113,7 +112,7 @@ class MappedPropertySource implements PropertySource {
             }
         }
 
-        return result;
+        return null;
     }
 
 }
\ No newline at end of file
diff --git 
a/modules/functions/src/main/java/org/apache/tamaya/functions/ValueMappedPropertySource.java
 
b/modules/functions/src/main/java/org/apache/tamaya/functions/ValueMappedPropertySource.java
index 7a37cc4..fb1a780 100644
--- 
a/modules/functions/src/main/java/org/apache/tamaya/functions/ValueMappedPropertySource.java
+++ 
b/modules/functions/src/main/java/org/apache/tamaya/functions/ValueMappedPropertySource.java
@@ -54,7 +54,8 @@ class ValueMappedPropertySource implements PropertySource{
     public PropertyValue get(String key) {
         PropertyValue value = this.source.get(key);
         if(value!=null && value.getValue()!=null) {
-            return PropertyValue.of(key, valueFilter.mapProperty(key, 
value.getValue()), getName());
+            return PropertyValue.createValue(key, valueFilter.mapProperty(key, 
value.getValue())).setMeta("source",
+                    getName());
         }
         return null;
     }
diff --git 
a/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java
 
b/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java
index cac3e51..c6dd69b 100644
--- 
a/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java
+++ 
b/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java
@@ -22,7 +22,6 @@ import org.apache.tamaya.ConfigOperator;
 import org.apache.tamaya.ConfigQuery;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.TypeLiteral;
-import org.apache.tamaya.spi.ConfigurationContext;
 import org.apache.tamaya.spisupport.DefaultConfiguration;
 import org.apache.tamaya.core.internal.CoreConfigurationBuilder;
 import org.apache.tamaya.spisupport.propertysource.SimplePropertySource;
@@ -39,7 +38,6 @@ import static java.util.Collections.singletonMap;
 import static 
org.apache.tamaya.functions.MethodNotMockedAnswer.NOT_MOCKED_ANSWER;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
-import static org.assertj.core.api.Assertions.within;
 import static org.mockito.Mockito.*;
 
 
@@ -55,7 +53,7 @@ public class CombinedConfigurationTest {
         SimplePropertySource sourceWithKeyA2 = new SimplePropertySource("A", 
singletonMap("a", "a2"));
         SimplePropertySource sourceWithKeyB = new SimplePropertySource("B", 
singletonMap("b", "b"));
         SimplePropertySource sourceWithKeyC = new SimplePropertySource("C", 
singletonMap("c", "c"));
-        SimplePropertySource sourceWithoutKeys = new 
SimplePropertySource("NONE", Collections.<String, String>emptyMap());
+        SimplePropertySource sourceWithoutKeys = new 
SimplePropertySource("NONE", Collections.emptyMap());
 
         Configuration ccWithA1 = new 
CoreConfigurationBuilder().addPropertySources(sourceWithKeyA1)
                                                                                
 .build();
@@ -135,7 +133,7 @@ public class CombinedConfigurationTest {
         assertThatThrownBy(new ThrowableAssert.ThrowingCallable() {
             @Override
             public void call() throws Throwable {
-                cc.getOrDefault("key", (String)null);
+                cc.getOrDefault("key", null);
             }
         }).isInstanceOf(NullPointerException.class)
           .hasMessage("Value must be given.");
@@ -234,7 +232,7 @@ public class CombinedConfigurationTest {
         doCallRealMethod().when(cc).getOrDefault(anyString(), 
eq(TypeLiteral.of(Integer.class)),
                                                  Mockito.anyInt());
 
-        Integer result = cc.<Integer>getOrDefault("a", 
TypeLiteral.<Integer>of(Integer.class), 789);
+        Integer result = cc.<Integer>getOrDefault("a", 
TypeLiteral.of(Integer.class), 789);
 
         assertThat(result).isEqualTo(999);
     }
diff --git 
a/modules/functions/src/test/java/org/apache/tamaya/functions/EnrichedConfigurationTest.java
 
b/modules/functions/src/test/java/org/apache/tamaya/functions/EnrichedConfigurationTest.java
index a66376b..a896820 100644
--- 
a/modules/functions/src/test/java/org/apache/tamaya/functions/EnrichedConfigurationTest.java
+++ 
b/modules/functions/src/test/java/org/apache/tamaya/functions/EnrichedConfigurationTest.java
@@ -20,9 +20,7 @@ package org.apache.tamaya.functions;
 
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.TypeLiteral;
-import org.assertj.core.api.Assertions;
 import org.assertj.core.api.ThrowableAssert;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.util.HashMap;
@@ -485,7 +483,7 @@ public class EnrichedConfigurationTest {
 
         EnrichedConfiguration sut = new EnrichedConfiguration(base, additions, 
false);
 
-        String result = sut.getOrDefault("b", 
TypeLiteral.<String>of(String.class), "3");
+        String result = sut.getOrDefault("b", TypeLiteral.of(String.class), 
"3");
 
         assertThat(result).isEqualTo("1");
     }
@@ -501,7 +499,7 @@ public class EnrichedConfigurationTest {
 
         EnrichedConfiguration sut = new EnrichedConfiguration(base, additions, 
true);
 
-        String result = sut.getOrDefault("b", 
TypeLiteral.<String>of(String.class), "3");
+        String result = sut.getOrDefault("b", TypeLiteral.of(String.class), 
"3");
 
         assertThat(result).isEqualTo("2");
     }
@@ -516,7 +514,7 @@ public class EnrichedConfigurationTest {
 
         EnrichedConfiguration sut = new EnrichedConfiguration(base, additions, 
false);
 
-        String result = sut.getOrDefault("b", 
TypeLiteral.<String>of(String.class), "B");
+        String result = sut.getOrDefault("b", TypeLiteral.of(String.class), 
"B");
 
         assertThat(result).isEqualTo("20");
     }
@@ -533,7 +531,7 @@ public class EnrichedConfigurationTest {
 
         EnrichedConfiguration sut = new EnrichedConfiguration(base, additions, 
true);
 
-        String result = sut.getOrDefault("b", 
TypeLiteral.<String>of(String.class), "B");
+        String result = sut.getOrDefault("b", TypeLiteral.of(String.class), 
"B");
 
         assertThat(result).isEqualTo("20");
     }
@@ -548,7 +546,7 @@ public class EnrichedConfigurationTest {
 
         EnrichedConfiguration sut = new EnrichedConfiguration(base, additions, 
false);
 
-        String result = sut.getOrDefault("b", 
TypeLiteral.<String>of(String.class), "B");
+        String result = sut.getOrDefault("b", TypeLiteral.of(String.class), 
"B");
 
         assertThat(result).isEqualTo("B");
     }
@@ -562,7 +560,7 @@ public class EnrichedConfigurationTest {
 
         EnrichedConfiguration sut = new EnrichedConfiguration(base, additions, 
true);
 
-        String result = sut.getOrDefault("b", 
TypeLiteral.<String>of(String.class), "3");
+        String result = sut.getOrDefault("b", TypeLiteral.of(String.class), 
"3");
 
         assertThat(result).isEqualTo("3");
     }
diff --git 
a/modules/functions/src/test/java/org/apache/tamaya/functions/EnrichedPropertySourceTest.java
 
b/modules/functions/src/test/java/org/apache/tamaya/functions/EnrichedPropertySourceTest.java
index 5c60674..71ab69e 100644
--- 
a/modules/functions/src/test/java/org/apache/tamaya/functions/EnrichedPropertySourceTest.java
+++ 
b/modules/functions/src/test/java/org/apache/tamaya/functions/EnrichedPropertySourceTest.java
@@ -22,8 +22,6 @@ import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertyValue;
 import org.junit.Test;
 
-import javax.management.RuntimeMBeanException;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
diff --git 
a/modules/functions/src/test/java/org/apache/tamaya/functions/FilteredPropertySourceTest.java
 
b/modules/functions/src/test/java/org/apache/tamaya/functions/FilteredPropertySourceTest.java
index c4dd30a..0f30639 100644
--- 
a/modules/functions/src/test/java/org/apache/tamaya/functions/FilteredPropertySourceTest.java
+++ 
b/modules/functions/src/test/java/org/apache/tamaya/functions/FilteredPropertySourceTest.java
@@ -163,7 +163,7 @@ public class FilteredPropertySourceTest {
 
         FilteredPropertySource fps = new FilteredPropertySource(imps, filter);
 
-        assertThat(fps.getProperties()).isEmpty();;
+        assertThat(fps.getProperties()).isEmpty();
     }
 
     @Test
diff --git 
a/modules/functions/src/test/java/org/apache/tamaya/functions/InMemoryPropertySource.java
 
b/modules/functions/src/test/java/org/apache/tamaya/functions/InMemoryPropertySource.java
index 77ad378..7bb773f 100644
--- 
a/modules/functions/src/test/java/org/apache/tamaya/functions/InMemoryPropertySource.java
+++ 
b/modules/functions/src/test/java/org/apache/tamaya/functions/InMemoryPropertySource.java
@@ -54,7 +54,7 @@ public class InMemoryPropertySource implements PropertySource 
{
     public PropertyValue get(String key) {
         String value = properties.get(key);
 
-        return PropertyValue.of(key, value, getName());
+        return PropertyValue.createValue(key, value).setMeta("source", 
getName());
     }
 
     public InMemoryPropertySource add(String key, String value) {
@@ -68,7 +68,7 @@ public class InMemoryPropertySource implements PropertySource 
{
         Map<String, PropertyValue> result = new HashMap<>();
 
         for (Map.Entry<String, String> entry : properties.entrySet()) {
-            PropertyValue value = PropertyValue.of(entry.getKey(), 
entry.getValue(), getName());
+            PropertyValue value = PropertyValue.createValue(entry.getKey(), 
entry.getValue()).setMeta("source", getName());
             result.put(entry.getKey(), value);
         }
 
diff --git 
a/modules/functions/src/test/java/org/apache/tamaya/functions/MappedConfigurationTest.java
 
b/modules/functions/src/test/java/org/apache/tamaya/functions/MappedConfigurationTest.java
index 02fee55..26ce245 100644
--- 
a/modules/functions/src/test/java/org/apache/tamaya/functions/MappedConfigurationTest.java
+++ 
b/modules/functions/src/test/java/org/apache/tamaya/functions/MappedConfigurationTest.java
@@ -37,7 +37,7 @@ public class MappedConfigurationTest {
         doReturn("z").when(mc).get(eq("a)"));
         doCallRealMethod().when(mc).getOrDefault(anyString(), anyString());
 
-        mc.getOrDefault("a", (String)null);
+        mc.getOrDefault("a", null);
     }
 
     @Test(expected = NullPointerException.class)
diff --git 
a/modules/functions/src/test/java/org/apache/tamaya/functions/MappedPropertySourceTest.java
 
b/modules/functions/src/test/java/org/apache/tamaya/functions/MappedPropertySourceTest.java
index 56b7d74..2930230 100644
--- 
a/modules/functions/src/test/java/org/apache/tamaya/functions/MappedPropertySourceTest.java
+++ 
b/modules/functions/src/test/java/org/apache/tamaya/functions/MappedPropertySourceTest.java
@@ -21,7 +21,6 @@ package org.apache.tamaya.functions;
 import org.apache.tamaya.spi.PropertyValue;
 import org.junit.Test;
 
-import javax.management.ImmutableDescriptor;
 import java.util.Map;
 
 import static org.apache.tamaya.spi.PropertyValue.of;
diff --git 
a/modules/functions/src/test/java/org/apache/tamaya/functions/PropertySourceFunctionsTest.java
 
b/modules/functions/src/test/java/org/apache/tamaya/functions/PropertySourceFunctionsTest.java
index 17a0e21..57ca71f 100644
--- 
a/modules/functions/src/test/java/org/apache/tamaya/functions/PropertySourceFunctionsTest.java
+++ 
b/modules/functions/src/test/java/org/apache/tamaya/functions/PropertySourceFunctionsTest.java
@@ -18,10 +18,8 @@
  */
 package org.apache.tamaya.functions;
 
-import org.apache.tamaya.functions.PropertySourceFunctions;
 import org.apache.tamaya.spi.PropertySource;
 import org.assertj.core.api.ThrowableAssert;
-import org.assertj.core.description.TextDescription;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -141,7 +139,7 @@ public class PropertySourceFunctionsTest {
         assertThatThrownBy(new ThrowableAssert.ThrowingCallable() {
             @Override
             public void call() throws Throwable {
-                isKeyInSections("key", (String)null, "a.b");
+                isKeyInSections("key", null, "a.b");
             }
         }).isInstanceOf(NullPointerException.class)
           .hasMessage("At least one section key must be given.");
@@ -175,7 +173,7 @@ public class PropertySourceFunctionsTest {
         String key = "a.b.key";
         String first = "a.b";
 
-        boolean result = isKeyInSections(key, first, new String[]{});
+        boolean result = isKeyInSections(key, first);
 
         assertThat(result).describedAs("Key '%s' is in section '%s'.", key, 
first)
                           .isTrue();
diff --git 
a/modules/functions/src/test/java/org/apache/tamaya/functions/ValueMappedPropertySourceTest.java
 
b/modules/functions/src/test/java/org/apache/tamaya/functions/ValueMappedPropertySourceTest.java
index 6afdbc1..9c13102 100644
--- 
a/modules/functions/src/test/java/org/apache/tamaya/functions/ValueMappedPropertySourceTest.java
+++ 
b/modules/functions/src/test/java/org/apache/tamaya/functions/ValueMappedPropertySourceTest.java
@@ -19,7 +19,6 @@
 package org.apache.tamaya.functions;
 
 import org.apache.tamaya.spi.PropertyValue;
-import org.assertj.core.api.Condition;
 import org.junit.Test;
 
 import java.util.Map;
diff --git 
a/modules/hazelcast/src/main/java/org/apache/tamaya/hazelcast/AbstractHazelcastPropertySource.java
 
b/modules/hazelcast/src/main/java/org/apache/tamaya/hazelcast/AbstractHazelcastPropertySource.java
index 6084b63..9ae9b9a 100644
--- 
a/modules/hazelcast/src/main/java/org/apache/tamaya/hazelcast/AbstractHazelcastPropertySource.java
+++ 
b/modules/hazelcast/src/main/java/org/apache/tamaya/hazelcast/AbstractHazelcastPropertySource.java
@@ -181,15 +181,13 @@ implements MutablePropertySource{
     public void refresh() {
         IMap<String,String> config = 
getHazelcastInstance().getMap(mapReference);
         Map<String, PropertyValue> configMap = new HashMap<>();
-        config.entrySet().forEach(en -> {
-            configMap.put(en.getKey(),
-            PropertyValue.createValue(en.getKey(), en.getValue())
-                    .setMeta("source", getName())
-                    .setMeta("backend", "Hazelcast")
-                    .setMeta("instance", getHazelcastInstance().getName())
-                    .setMeta("mapReference", mapReference)
-                    .immutable());
-        });
+        config.forEach((key, value) -> configMap.put(key,
+                PropertyValue.createValue(key, value)
+                        .setMeta("source", getName())
+                        .setMeta("backend", "Hazelcast")
+                        .setMeta("instance", getHazelcastInstance().getName())
+                        .setMeta("mapReference", mapReference)
+                        .immutable()));
         this.timeout.set(System.currentTimeMillis() + timeoutDuration.get());
         this.configMap = Collections.unmodifiableMap(configMap);
     }
diff --git 
a/modules/hazelcast/src/test/java/org/apache/tamaya/hazelcast/HazelcastPropertySourceTest.java
 
b/modules/hazelcast/src/test/java/org/apache/tamaya/hazelcast/HazelcastPropertySourceTest.java
index 17a025f..290a477 100644
--- 
a/modules/hazelcast/src/test/java/org/apache/tamaya/hazelcast/HazelcastPropertySourceTest.java
+++ 
b/modules/hazelcast/src/test/java/org/apache/tamaya/hazelcast/HazelcastPropertySourceTest.java
@@ -19,7 +19,6 @@
 
 package org.apache.tamaya.hazelcast;
 
-import com.hazelcast.core.Hazelcast;
 import com.hazelcast.core.HazelcastInstance;
 import com.hazelcast.core.IMap;
 import org.apache.tamaya.spi.PropertyValue;
diff --git 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/CDIAwareServiceContext.java
 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/CDIAwareServiceContext.java
index d400c1e..8c28a55 100644
--- 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/CDIAwareServiceContext.java
+++ 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/CDIAwareServiceContext.java
@@ -87,7 +87,7 @@ public class CDIAwareServiceContext implements 
ServiceContext, ClassloaderAware
         T serv = getService(serviceType);
         if(serv!=null){
             try {
-                return (T)serv.getClass().newInstance();
+                return (T)serv.getClass().getConstructor().newInstance();
             } catch (Exception e) {
                 Logger.getLogger(getClass().getName())
                         .log(Level.SEVERE, "Failed to createObject new 
instance of: " +serviceType.getName(), e);
diff --git 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ConfigurationProducer.java
 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ConfigurationProducer.java
index cf71b45..a5b5cf8 100644
--- 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ConfigurationProducer.java
+++ 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ConfigurationProducer.java
@@ -19,7 +19,6 @@ package org.apache.tamaya.cdi;
 import org.apache.tamaya.*;
 import org.apache.tamaya.inject.api.*;
 import org.apache.tamaya.spi.*;
-import org.apache.tamaya.spi.ConversionContext;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.enterprise.inject.Instance;
@@ -78,7 +77,10 @@ public class ConfigurationProducer {
         // unless the extension is not installed, this should never happen 
because the extension
         // enforces the resolvability of the config
 
-        String defaultTextValue = 
annotation.defaultValue().equals(Config.UNCONFIGURED_VALUE) ? null : 
annotation.defaultValue();
+        String defaultTextValue = null;
+        if(annotation!=null && 
!annotation.defaultValue().equals(Config.UNCONFIGURED_VALUE)){
+            defaultTextValue = annotation.defaultValue();
+        }
         boolean required = annotation.required();
         String textValue = null;
         Configuration config = Configuration.current();
@@ -106,7 +108,7 @@ public class ConfigurationProducer {
                     keys, conversionContext.getTargetType(), 
conversionContext.getSupportedFormats().toString()));
             }
         }
-        LOGGER.finest(String.format("Injecting %s for key %s in class %s", 
keyFound, value.toString(), injectionPoint.toString()));
+        LOGGER.finest(String.format("Injecting %s for key %s in class %s", 
keyFound, value, injectionPoint.toString()));
         return value;
     }
 
diff --git 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/DefaultDynamicValue.java
 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/DefaultDynamicValue.java
index 3a85ed0..ac371cd 100644
--- 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/DefaultDynamicValue.java
+++ 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/DefaultDynamicValue.java
@@ -113,7 +113,7 @@ final class DefaultDynamicValue<T> extends 
BaseDynamicValue<T> {
         WithPropertyConverter annot = 
annotatedField.getAnnotation(WithPropertyConverter.class);
         if (annot != null) {
             try {
-                propertyConverter = annot.value().newInstance();
+                propertyConverter = 
annot.value().getConstructor().newInstance();
             } catch (Exception e) {
                 throw new ConfigException("Failed to instantiate annotated 
PropertyConverter on " +
                         annotatedField.getDeclaringClass().getName()
@@ -157,7 +157,7 @@ final class DefaultDynamicValue<T> extends 
BaseDynamicValue<T> {
         WithPropertyConverter annot = 
method.getAnnotation(WithPropertyConverter.class);
         if (annot != null) {
             try {
-                propertyConverter = (PropertyConverter<Object>) 
annot.value().newInstance();
+                propertyConverter = (PropertyConverter<Object>) 
annot.value().getConstructor().newInstance();
             } catch (Exception e) {
                 throw new ConfigException("Failed to instantiate annotated 
PropertyConverter on " +
                         method.getDeclaringClass().getName()
diff --git 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ServiceLoaderServiceContext.java
 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ServiceLoaderServiceContext.java
index 9e1a834..c698df5 100644
--- 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ServiceLoaderServiceContext.java
+++ 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/ServiceLoaderServiceContext.java
@@ -82,7 +82,7 @@ final class ServiceLoaderServiceContext implements 
ServiceContext {
             }
         }
         try {
-            return implType.newInstance();
+            return implType.getConstructor().newInstance();
         } catch (Exception e) {
             LOG.log(Level.SEVERE, "Failed to createObject instance of " + 
implType.getName(), e);
             if(supplier!=null){
@@ -106,7 +106,7 @@ final class ServiceLoaderServiceContext implements 
ServiceContext {
             return found;
         }
         List<T> services = loadServices(serviceType, supplier);
-        final List<T> previousServices = 
List.class.cast(servicesLoaded.putIfAbsent(serviceType, (List<Object>) 
services));
+        final List<T> previousServices = (List) 
servicesLoaded.putIfAbsent(serviceType, (List<Object>) services);
         return previousServices != null ? previousServices : services;
     }
 
@@ -119,14 +119,11 @@ final class ServiceLoaderServiceContext implements 
ServiceContext {
                 }
                 services.add(t);
             }
-            Collections.sort(services, 
PriorityServiceComparator.getInstance());
+            services.sort(PriorityServiceComparator.getInstance());
             services = Collections.unmodifiableList(services);
         } catch (ServiceConfigurationError e) {
             LOG.log(Level.WARNING,
                     "Error loading services current type " + serviceType, e);
-            if(services==null){
-                services = Collections.emptyList();
-            }
         }
         if(services.isEmpty() && supplier!=null){
             List<T> ts = supplier.get();
@@ -193,7 +190,9 @@ final class ServiceLoaderServiceContext implements 
ServiceContext {
                     highestPriority,
                     services));
         }
-        this.factoryTypes.put(serviceType, highestService.getClass());
+        if(highestService!=null) {
+            this.factoryTypes.put(serviceType, highestService.getClass());
+        }
         return highestService;
     }
 
diff --git 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/TamayaCDIInjectionExtension.java
 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/TamayaCDIInjectionExtension.java
index 8ec1137..fbbd3c9 100644
--- 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/TamayaCDIInjectionExtension.java
+++ 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/TamayaCDIInjectionExtension.java
@@ -133,8 +133,8 @@ public class TamayaCDIInjectionExtension implements 
Extension {
         }
         try{
             if(!CUSTOM_OPERATORS.containsKey(operatorClass)) {
-                final ConfigOperator op = operatorClass.newInstance();
-                CUSTOM_OPERATORS.put(operatorClass, cfg -> op.operate(cfg));
+                final ConfigOperator op = 
operatorClass.getConstructor().newInstance();
+                CUSTOM_OPERATORS.put(operatorClass, op::operate);
             }
         } catch(Exception e){
             throw new ConfigException("Custom ConfigOperator could not be 
loaded: " + operatorClass.getName(), e);
@@ -148,7 +148,7 @@ public class TamayaCDIInjectionExtension implements 
Extension {
         }
         try{
             if(!CUSTOM_CONVERTERS.containsKey(converterClass)) {
-                CUSTOM_CONVERTERS.put(converterClass, 
converterClass.newInstance());
+                CUSTOM_CONVERTERS.put(converterClass, 
converterClass.getConstructor().newInstance());
             }
         } catch(Exception e){
             throw new ConfigException("Custom PropertyConverter could not be 
loaded: " + converterClass.getName(), e);
diff --git 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/TamayaSEInjectionExtension.java
 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/TamayaSEInjectionExtension.java
index 4a51863..5f82c2b 100644
--- 
a/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/TamayaSEInjectionExtension.java
+++ 
b/modules/injection/cdi/src/main/java/org/apache/tamaya/cdi/TamayaSEInjectionExtension.java
@@ -19,7 +19,7 @@
 package org.apache.tamaya.cdi;
 
 
-import org.apache.tamaya.inject.ConfigurationInjection;
+import org.apache.tamaya.inject.ConfigurationInjector;
 import org.apache.tamaya.inject.api.Config;
 import org.apache.tamaya.inject.api.ConfigSection;
 
@@ -55,7 +55,7 @@ public final class TamayaSEInjectionExtension implements 
Extension {
             @Override
             public void inject(T instance, CreationalContext<T> ctx) {
                 it.inject(instance, ctx);
-                
ConfigurationInjection.getConfigurationInjector().configure(instance);
+                ConfigurationInjector.getInstance().configure(instance);
             }
 
             @Override
diff --git 
a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/CDIConfiguredTypeTest.java
 
b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/CDIConfiguredTypeTest.java
index 82d6a7b..33ac730 100644
--- 
a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/CDIConfiguredTypeTest.java
+++ 
b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/CDIConfiguredTypeTest.java
@@ -18,8 +18,6 @@
  */
 package org.apache.tamaya.cdi;
 
-import static org.assertj.core.api.Assertions.assertThat;
-
 public class CDIConfiguredTypeTest {
 
 }
diff --git 
a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredBTest.java
 
b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredBTest.java
index d547b7b..b43cea2 100644
--- 
a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredBTest.java
+++ 
b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredBTest.java
@@ -22,7 +22,6 @@ package org.apache.tamaya.cdi;
 import org.jboss.arquillian.junit.Arquillian;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.internal.matchers.NotNull;
 
 import javax.enterprise.inject.spi.CDI;
 
diff --git 
a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredVetoExtensionTest.java
 
b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredVetoExtensionTest.java
index 2d8e59b..7f41dc0 100644
--- 
a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredVetoExtensionTest.java
+++ 
b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/ConfiguredVetoExtensionTest.java
@@ -18,13 +18,10 @@
  */
 package org.apache.tamaya.cdi;
 
-import org.apache.tamaya.ConfigurationProvider;
-import org.apache.tamaya.Configuration;
 import org.apache.tamaya.cdi.BaseTestConfiguration;
 import org.apache.tamaya.cdi.extra.ConfiguredVetoExtension;
 import org.apache.tamaya.cdi.extra.TestKlazz;
 import org.apache.tamaya.cdi.extra.TestKlazz2;
-import org.apache.tamaya.spi.ConfigurationContext;
 import org.junit.Test;
 
 import javax.enterprise.inject.spi.AnnotatedType;
diff --git 
a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/cfg/TestPropertySource.java
 
b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/cfg/TestPropertySource.java
index 6fb7b6f..5d823a5 100644
--- 
a/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/cfg/TestPropertySource.java
+++ 
b/modules/injection/cdi/src/test/java/org/apache/tamaya/cdi/cfg/TestPropertySource.java
@@ -43,7 +43,6 @@ public class TestPropertySource implements PropertySource{
         config.put("a.key6", "keys current a.key6");
         config.put("int1", "123456");
         config.put("int2", "111222");
-        config.put("testProperty", "testPropertyValue!");
         config.put("injectedTestProperty", "injectedTestPropertyValue!");
         config.put("booleanT", "true");
         config.put("double1", "1234.5678");
@@ -68,7 +67,7 @@ public class TestPropertySource implements PropertySource{
     public PropertyValue get(String key) {
         String val = this.config.get(key);
         if(val!=null) {
-            return PropertyValue.of(key, val, getName());
+            return PropertyValue. createValue(key, val).setMeta("source", 
getName());
         }
         return null;
     }
@@ -78,8 +77,4 @@ public class TestPropertySource implements PropertySource{
         return PropertyValue.map(config ,getName());
     }
 
-    @Override
-    public boolean isScannable() {
-        return true;
-    }
 }
diff --git 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/AbsoluteKeyResolver.java
 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/AbsoluteKeyResolver.java
index 95a8aaf..9df74b2 100644
--- 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/AbsoluteKeyResolver.java
+++ 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/AbsoluteKeyResolver.java
@@ -20,9 +20,7 @@ package org.apache.tamaya.inject.spi;
 
 import org.apache.tamaya.inject.api.KeyResolver;
 
-import java.lang.reflect.Field;
 import java.lang.reflect.Member;
-import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/AutoKeyResolver.java
 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/AutoKeyResolver.java
index 8db240e..5c476d0 100644
--- 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/AutoKeyResolver.java
+++ 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/AutoKeyResolver.java
@@ -18,7 +18,6 @@
  */
 package org.apache.tamaya.inject.spi;
 
-import org.apache.tamaya.inject.api.Config;
 import org.apache.tamaya.inject.api.ConfigSection;
 import org.apache.tamaya.inject.api.KeyResolver;
 
diff --git 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/BaseDynamicValue.java
 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/BaseDynamicValue.java
index c5f5919..3f10293 100644
--- 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/BaseDynamicValue.java
+++ 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/BaseDynamicValue.java
@@ -87,7 +87,7 @@ public abstract class BaseDynamicValue<T> implements 
DynamicValue<T> {
     /** The createList of candidate keys to be used. */
     private List<String> keys = new ArrayList<>();
     /** The registered listeners. */
-    private WeakList<PropertyChangeListener> listeners = new WeakList<>();
+    private final WeakList<PropertyChangeListener> listeners = new 
WeakList<>();
 
     /**
      * Creates a new instance.
diff --git 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
index ccfc59b..38dbb1f 100644
--- 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
+++ 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
@@ -153,7 +153,7 @@ public final class InjectionUtils {
 
     private static List<String> getPropertyKeys(Method method, Config 
configAnnot) {
         if(configAnnot!=null && !configAnnot.key().isEmpty()){
-            return Arrays.asList(configAnnot.key());
+            return Collections.singletonList(configAnnot.key());
         }
         String name = method.getName();
         if (name.startsWith("get") || name.startsWith("set")) {
@@ -203,7 +203,7 @@ public final class InjectionUtils {
 
     private static List<String> getPropertyKeys(Field field, Config 
configAnnot) {
         if(configAnnot!=null && !configAnnot.key().isEmpty()){
-            return Arrays.asList(configAnnot.key());
+            return Collections.singletonList(configAnnot.key());
         }
         return expandKey(field.getName());
     }
diff --git 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfigTemplateInvocationHandler.java
 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfigTemplateInvocationHandler.java
index 96e3297..3cfa974 100644
--- 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfigTemplateInvocationHandler.java
+++ 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfigTemplateInvocationHandler.java
@@ -19,7 +19,6 @@
 package org.apache.tamaya.inject.internal;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.inject.api.DynamicValue;
 import org.apache.tamaya.inject.spi.ConfiguredType;
diff --git 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredFieldImpl.java
 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredFieldImpl.java
index 32bbb89..19c176c 100644
--- 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredFieldImpl.java
+++ 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredFieldImpl.java
@@ -20,7 +20,6 @@ package org.apache.tamaya.inject.internal;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.TypeLiteral;
 import org.apache.tamaya.inject.api.DynamicValue;
 import org.apache.tamaya.inject.spi.InjectionUtils;
diff --git 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredSetterMethod.java
 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredSetterMethod.java
index 1aef542..c933967 100644
--- 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredSetterMethod.java
+++ 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredSetterMethod.java
@@ -60,15 +60,14 @@ public class ConfiguredSetterMethod implements 
ConfiguredMethod {
         String configValue = InjectionHelper.getConfigValue(this.setterMethod, 
retKey, config);
         Objects.requireNonNull(target);
         try {
-            String evaluatedString = configValue != null
-                    ? InjectionHelper.evaluateValue(configValue,
-                    config.getContext().getServiceContext().getClassLoader())
-                    : configValue;
-
+            if(configValue != null){
+                configValue = InjectionHelper.evaluateValue(configValue,
+                        
config.getContext().getServiceContext().getClassLoader());
+            }
             // Check for adapter/filter
             Object value = InjectionHelper.adaptValue(
                     this.setterMethod, 
TypeLiteral.of(this.setterMethod.getParameterTypes()[0]),
-                    retKey[0], evaluatedString);
+                    retKey[0], configValue);
 
             AccessController.doPrivileged(new 
PrivilegedExceptionAction<Object>() {
                 @Override
diff --git 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredTypeImpl.java
 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredTypeImpl.java
index 0f70db7..b1edb72 100644
--- 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredTypeImpl.java
+++ 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/ConfiguredTypeImpl.java
@@ -73,13 +73,8 @@ public class ConfiguredTypeImpl implements ConfiguredType{
             initMethods(type, true);
         }else {
             ConfigAutoInject autoInject = (ConfigAutoInject) 
type.getAnnotation(ConfigAutoInject.class);
-            if (autoInject != null) {
-                initFields(type, autoInject != null);
-                initMethods(type, autoInject != null);
-            } else {
-                initFields(type, false);
-                initMethods(type, false);
-            }
+            initFields(type, autoInject != null);
+            initMethods(type, autoInject != null);
         }
     }
 
diff --git 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
index 4145ab7..afa8d35 100644
--- 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
+++ 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultConfigurationInjector.java
@@ -95,7 +95,7 @@ public class DefaultConfigurationInjector implements 
ConfigurationInjector, Clas
      * @return true, if the type, a method or field has Tamaya config 
annotation on it.
      */
     private boolean isConfigAnnotated(Class<?> type) {
-        if(type.getClass().isAnnotationPresent(ConfigSection.class)){
+        if(type.isAnnotationPresent(ConfigSection.class)){
             return true;
         }
         for (Field f : type.getDeclaredFields()) {
diff --git 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultDynamicValue.java
 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultDynamicValue.java
index 38408ae..f9a16eb 100644
--- 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultDynamicValue.java
+++ 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/DefaultDynamicValue.java
@@ -123,7 +123,7 @@ final class DefaultDynamicValue<T> extends 
BaseDynamicValue<T> {
         WithPropertyConverter annot = 
annotatedField.getAnnotation(WithPropertyConverter.class);
         if (annot != null) {
             try {
-                propertyConverter = annot.value().newInstance();
+                propertyConverter = 
annot.value().getConstructor().newInstance();
             } catch (Exception e) {
                 throw new ConfigException("Failed to instantiate annotated 
PropertyConverter on " +
                         annotatedField.getDeclaringClass().getName()
@@ -169,7 +169,7 @@ final class DefaultDynamicValue<T> extends 
BaseDynamicValue<T> {
         WithPropertyConverter annot = 
method.getAnnotation(WithPropertyConverter.class);
         if (annot != null) {
             try {
-                propertyConverter = (PropertyConverter<Object>) 
annot.value().newInstance();
+                propertyConverter = (PropertyConverter<Object>) 
annot.value().getConstructor().newInstance();
             } catch (Exception e) {
                 throw new ConfigException("Failed to instantiate annotated 
PropertyConverter on " +
                         method.getDeclaringClass().getName()
@@ -267,9 +267,7 @@ final class DefaultDynamicValue<T> extends 
BaseDynamicValue<T> {
      * @return the uncommitted new createValue, or null.
      */
     public T getNewValue() {
-        @SuppressWarnings("unchecked")
-               T nv = newValue==null?null:(T)newValue;
-        return nv;
+        return newValue;
     }
 
     /**
@@ -286,9 +284,10 @@ final class DefaultDynamicValue<T> extends 
BaseDynamicValue<T> {
     /**
      * Reads an instance from the input stream.
      *
-     * @param ois the createObject input stream
+     * @param ois the object input stream
      * @throws IOException            if deserialization fails.
      * @throws ClassNotFoundException
+     * @throws IOException
      */
     @SuppressWarnings("unchecked")
        private void readObject(ObjectInputStream ois) throws IOException, 
ClassNotFoundException {
diff --git 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
index 075a5c8..a057708 100644
--- 
a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
+++ 
b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
@@ -161,7 +161,8 @@ final class InjectionHelper {
                 // TODO cache here...
                     ConversionContext ctx = new 
ConversionContext.Builder(key,targetType)
                             .setAnnotatedElement(element).build();
-                    PropertyConverter<T> converter = 
PropertyConverter.class.cast(converterType.newInstance());
+                    PropertyConverter<T> converter = 
converterType.getConstructor()
+                            .newInstance();
                     adaptedValue = converter.convert(configValue, ctx);
                 } catch (Exception e) {
                     LOG.log(Level.SEVERE, "Failed to convert using explicit 
PropertyConverter on " + element +
diff --git 
a/modules/injection/standalone/src/test/java/annottext/NonAnnotatedConfigBean.java
 
b/modules/injection/standalone/src/test/java/annottext/NonAnnotatedConfigBean.java
index aabb4ba..2b11849 100644
--- 
a/modules/injection/standalone/src/test/java/annottext/NonAnnotatedConfigBean.java
+++ 
b/modules/injection/standalone/src/test/java/annottext/NonAnnotatedConfigBean.java
@@ -18,15 +18,6 @@
  */
 package annottext;
 
-import org.apache.tamaya.inject.api.Config;
-import org.apache.tamaya.inject.api.ConfigSection;
-import org.apache.tamaya.inject.api.DynamicValue;
-import org.apache.tamaya.inject.api.NoConfig;
-import org.apache.tamaya.inject.spi.AbsoluteKeyResolver;
-
-import java.util.ArrayList;
-import java.util.List;
-
 /**
  * An example showing some basic annotations, using an interface to be proxied 
by the
  * configuration system, nevertheless extending the overall Configuration 
interface.
diff --git 
a/modules/jndi/src/main/java/org/apache/tamaya/jndi/JNDIPropertySource.java 
b/modules/jndi/src/main/java/org/apache/tamaya/jndi/JNDIPropertySource.java
index 3386054..67b2383 100644
--- a/modules/jndi/src/main/java/org/apache/tamaya/jndi/JNDIPropertySource.java
+++ b/modules/jndi/src/main/java/org/apache/tamaya/jndi/JNDIPropertySource.java
@@ -125,7 +125,7 @@ public class JNDIPropertySource extends BasePropertySource {
         try {
             key = key.replace('.', '/');
             Object o = context.lookup(key);
-            return PropertyValue.of(key, o.toString(), getName());
+            return PropertyValue.createValue(key, 
o.toString()).setMeta("source", getName());
         } catch (NamingException e) {
             LOG.log(Level.FINER, "Failed to lookup key in JNDI: " + key, e);
             return null;
diff --git 
a/modules/jndi/src/test/java/org/apache/tamaya/jndi/JNDIPropertySourceTest.java 
b/modules/jndi/src/test/java/org/apache/tamaya/jndi/JNDIPropertySourceTest.java
index 2d7d246..ae86fea 100644
--- 
a/modules/jndi/src/test/java/org/apache/tamaya/jndi/JNDIPropertySourceTest.java
+++ 
b/modules/jndi/src/test/java/org/apache/tamaya/jndi/JNDIPropertySourceTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.tamaya.jndi;
 
-import org.apache.tamaya.spi.PropertyValue;
 import org.junit.Test;
 
 import javax.naming.Context;
@@ -27,14 +26,13 @@ import javax.naming.NamingException;
 import java.io.File;
 import java.net.MalformedURLException;
 import java.util.Hashtable;
-import java.util.Map;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class JNDIPropertySourceTest{
 
     private InitialContext createFSContext() throws NamingException, 
MalformedURLException {
-        Hashtable<String, String> env = new Hashtable<String, String>();
+        Hashtable<String, String> env = new Hashtable<>();
         env.put (Context.INITIAL_CONTEXT_FACTORY,
                 "com.sun.jndi.fscontext.RefFSContextFactory");
         return new InitialContext(env);
diff --git 
a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileAdapter.java
 
b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileAdapter.java
index b0d3e7a..0adaaf1 100644
--- 
a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileAdapter.java
+++ 
b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileAdapter.java
@@ -131,7 +131,7 @@ public final class MicroprofileAdapter{
         if(converter instanceof MicroprofileConverter){
             return ((MicroprofileConverter)converter).getPropertyConverter();
         }
-        return new TamayaPropertyConverter<T>(converter);
+        return new TamayaPropertyConverter<>(converter);
     }
 
     /**
diff --git 
a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
 
b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
index 9ff395e..c38d38f 100644
--- 
a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
+++ 
b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
@@ -20,7 +20,6 @@ package org.apache.tamaya.microprofile;
 
 import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.events.FrozenConfiguration;
 import org.apache.tamaya.spi.PropertySource;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.spi.ConfigSource;
diff --git 
a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilder.java
 
b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilder.java
index d444585..816878c 100644
--- 
a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilder.java
+++ 
b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilder.java
@@ -39,8 +39,6 @@ import org.eclipse.microprofile.config.spi.Converter;
 final class MicroprofileConfigBuilder implements ConfigBuilder {
        
        private ConfigurationBuilder configurationBuilder;
-       @SuppressWarnings("unused")
-       private ClassLoader classloader;
 
     MicroprofileConfigBuilder(ConfigurationBuilder configurationBuilder){
         this.configurationBuilder = 
Objects.requireNonNull(configurationBuilder);
@@ -116,7 +114,7 @@ final class MicroprofileConfigBuilder implements 
ConfigBuilder {
 
     @Override
     public ConfigBuilder forClassLoader(ClassLoader loader) {
-        this.classloader = loader;
+        this.configurationBuilder.setClassLoader(loader);
         return this;
     }
 
@@ -145,7 +143,7 @@ final class MicroprofileConfigBuilder implements 
ConfigBuilder {
        @SuppressWarnings("unchecked")
        @Override
        public <T> ConfigBuilder withConverter(Class<T> type, int priority, 
Converter<T> converter) {
-               
configurationBuilder.addPropertyConverters(TypeLiteral.of(type.getClass()), 
MicroprofileAdapter.toPropertyConverter(converter));
+               
configurationBuilder.addPropertyConverters(TypeLiteral.of(type), 
MicroprofileAdapter.toPropertyConverter(converter));
                return this;
        }
     
diff --git 
a/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilderTest.java
 
b/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilderTest.java
index 6615fc8..c2b4fd7 100644
--- 
a/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilderTest.java
+++ 
b/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigBuilderTest.java
@@ -22,7 +22,6 @@ import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.spi.ConfigBuilder;
 import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
 import org.eclipse.microprofile.config.spi.ConfigSource;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.util.HashMap;
diff --git 
a/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderResolverTest.java
 
b/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderResolverTest.java
index d5f3323..10f9b53 100644
--- 
a/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderResolverTest.java
+++ 
b/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigProviderResolverTest.java
@@ -19,7 +19,6 @@
 package org.apache.tamaya.microprofile;
 
 import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.spi.ConfigBuilder;
 import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
 import org.junit.Test;
 
diff --git 
a/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigTest.java
 
b/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigTest.java
index 7c98b08..b0419fe 100644
--- 
a/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigTest.java
+++ 
b/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConfigTest.java
@@ -18,12 +18,9 @@
  */
 package org.apache.tamaya.microprofile;
 
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.spisupport.propertysource.SystemPropertySource;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 import org.eclipse.microprofile.config.spi.ConfigSource;
-import org.junit.Before;
 import org.junit.Test;
 
 import java.time.Instant;
diff --git 
a/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConverterTest.java
 
b/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConverterTest.java
index 35819bc..c30e631 100644
--- 
a/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConverterTest.java
+++ 
b/modules/microprofile/src/test/java/org/apache/tamaya/microprofile/MicroprofileConverterTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.tamaya.microprofile;
 
-import org.apache.tamaya.microprofile.converter.ProviderConverter;
 import org.apache.tamaya.spi.PropertyConverter;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/MutableConfiguration.java
 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/MutableConfiguration.java
index 8d10de6..cb8d7f0 100644
--- 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/MutableConfiguration.java
+++ 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/MutableConfiguration.java
@@ -19,7 +19,6 @@
 package org.apache.tamaya.mutableconfig;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.mutableconfig.spi.MutableConfigurationProviderSpi;
 import org.apache.tamaya.mutableconfig.spi.MutablePropertySource;
 import org.apache.tamaya.spi.ServiceContextManager;
 
diff --git 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/MutableConfigurationProvider.java
 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/MutableConfigurationProvider.java
index 4724f46..b201492 100644
--- 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/MutableConfigurationProvider.java
+++ 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/MutableConfigurationProvider.java
@@ -22,7 +22,6 @@ import org.apache.tamaya.ConfigException;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.mutableconfig.spi.MutableConfigurationProviderSpi;
 import org.apache.tamaya.mutableconfig.spi.MutablePropertySource;
-import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.ServiceContextManager;
 
 import java.util.*;
diff --git 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/internal/DefaultMutableConfiguration.java
 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/internal/DefaultMutableConfiguration.java
index 7069a6f..5ab2347 100644
--- 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/internal/DefaultMutableConfiguration.java
+++ 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/internal/DefaultMutableConfiguration.java
@@ -18,8 +18,6 @@
  */
 package org.apache.tamaya.mutableconfig.internal;
 
-import org.apache.tamaya.ConfigOperator;
-import org.apache.tamaya.ConfigQuery;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationSnapshot;
 import org.apache.tamaya.TypeLiteral;
@@ -145,16 +143,6 @@ public class DefaultMutableConfiguration implements 
MutableConfiguration {
     }
 
     @Override
-    public Configuration with(ConfigOperator operator) {
-        return operator.operate(this);
-    }
-
-    @Override
-    public <T> T query(ConfigQuery<T> query) {
-        return query.query(this);
-    }
-
-    @Override
     public ConfigurationContext getContext() {
         return config.getContext();
     }
diff --git 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/propertysources/MutableXmlPropertiesPropertySource.java
 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/propertysources/MutableXmlPropertiesPropertySource.java
index 053f88d..99d7097 100644
--- 
a/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/propertysources/MutableXmlPropertiesPropertySource.java
+++ 
b/modules/mutable-config/src/main/java/org/apache/tamaya/mutableconfig/propertysources/MutableXmlPropertiesPropertySource.java
@@ -91,7 +91,7 @@ implements MutablePropertySource{
     public PropertyValue get(String key) {
         String val = this.properties.get(key);
         if(val!=null) {
-            return PropertyValue.of(key, val, getName());
+            return PropertyValue.createValue(key, val).setMeta("source", 
getName());
         }
         return null;
     }
diff --git 
a/modules/optional/src/main/java/org/apache/tamaya/optional/OptionalConfiguration.java
 
b/modules/optional/src/main/java/org/apache/tamaya/optional/OptionalConfiguration.java
index 77b5a5f..46dd921 100644
--- 
a/modules/optional/src/main/java/org/apache/tamaya/optional/OptionalConfiguration.java
+++ 
b/modules/optional/src/main/java/org/apache/tamaya/optional/OptionalConfiguration.java
@@ -176,12 +176,9 @@ public final class OptionalConfiguration {
             case TAMAYA_OVERRIDES_OTHER:
                 return tamayaValue != null ? tamayaValue : value;
             case THROWS_EXCEPTION:
-                if (tamayaValue != value) {
-                    if ((tamayaValue != null && !tamayaValue.equals(value)) ||
-                            (value != null && TAMAYA_LOADED && 
!value.equals(tamayaValue))) {
+                if (TAMAYA_LOADED && !Objects.equals(value, tamayaValue)) {
                         throw new IllegalStateException("Incompatible 
configuration values: key=" + key +
                                 "=" + value + "(provider)/" + tamayaValue + 
"(Tamaya");
-                    }
                 }
                 break;
             default:
diff --git 
a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/Activator.java 
b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/Activator.java
index b0e7d43..9a7a404 100644
--- a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/Activator.java
+++ b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/Activator.java
@@ -48,13 +48,12 @@ public class Activator implements BundleActivator {
 
     @Override
     public void start(BundleContext context) throws Exception {
-        this.plugin = new TamayaConfigPlugin(context);
         Dictionary<String, Object> props = new Hashtable<>();
         props.put(Constants.SERVICE_RANKING, DEFAULT_RANKING);
         LOG.info("Registering Tamaya OSGI Config Service...");
         registration = context.registerService(
                 TamayaConfigService.class,
-                this.plugin, props);
+                new TamayaConfigPlugin(context), props);
     }
 
     @Override
diff --git 
a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java 
b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java
index 6a672af..4256a55 100644
--- 
a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java
+++ 
b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java
@@ -42,7 +42,7 @@ public final class ConfigHistory implements Serializable{
     /** The max number of changes tracked. */
     private static int maxHistory = 10000;
     /** The overall history. */
-    private static List<ConfigHistory> history = new 
LinkedList<ConfigHistory>();
+    private static List<ConfigHistory> history = new LinkedList<>();
 
     /** The entry timestamp. */
     private long timestamp = System.currentTimeMillis();
@@ -244,7 +244,7 @@ public final class ConfigHistory implements Serializable{
 
     /**
      * Restores the history from the plugin's OSGI configuration.
-     * @param osgiConfig
+     * @param osgiConfig THE OSGI dictionary, not null.
      */
     @SuppressWarnings("unchecked")
        static void restore(Dictionary<String,Object> osgiConfig){
diff --git 
a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/TamayaConfigPlugin.java
 
b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/TamayaConfigPlugin.java
index 452919b..a22c7b5 100644
--- 
a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/TamayaConfigPlugin.java
+++ 
b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/TamayaConfigPlugin.java
@@ -269,15 +269,15 @@ public class TamayaConfigPlugin implements 
TamayaConfigService,BundleListener, S
     }
 
     Dictionary<String, Object> getPluginConfig(){
-        Configuration config = null;
+        Configuration config;
         try {
             config = 
configChanger.getConfigurationAdmin().getConfiguration(COMPONENTID);
-            Dictionary<String, Object> props = null;
+            Dictionary<String, Object> props;
             if (config != null
                     && config.getProperties() != null) {
                 props = config.getProperties();
             } else {
-                props = new Hashtable<String, Object>();
+                props = new Hashtable<>();
             }
             return props;
         } catch (IOException e) {
@@ -286,7 +286,7 @@ public class TamayaConfigPlugin implements 
TamayaConfigService,BundleListener, S
     }
 
     void setPluginConfig(Dictionary<String, Object> props){
-        Configuration config = null;
+        Configuration config;
         try {
             config = 
configChanger.getConfigurationAdmin().getConfiguration(COMPONENTID);
             if (config != null) {
@@ -410,7 +410,7 @@ public class TamayaConfigPlugin implements 
TamayaConfigService,BundleListener, S
     public Dictionary<String, Object> getOSGIConfiguration(String pid, String 
section) {
         try {
             Configuration config = 
configChanger.getConfigurationAdmin().getConfiguration(pid);
-            Dictionary<String, Object> props = null;
+            Dictionary<String, Object> props;
             if (config == null
                     || config.getProperties() == null) {
                 return null;
diff --git 
a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/ConfigCommands.java
 
b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/ConfigCommands.java
index acc0104..f6d1d45 100644
--- 
a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/ConfigCommands.java
+++ 
b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/ConfigCommands.java
@@ -65,7 +65,7 @@ public final class ConfigCommands {
     }
 
     public static String applyTamayaConfiguration(TamayaConfigService 
configPlugin, String pid, String operationMode, boolean dryRun){
-        Dictionary<String,Object> config = null;
+        Dictionary<String,Object> config;
         if(operationMode!=null){
             config = configPlugin.updateConfig(pid, 
Policy.valueOf(operationMode), true, dryRun);
             return  "Applied Configuration\n" +
@@ -183,7 +183,7 @@ public final class ConfigCommands {
                 for(PropertyValue pv:ps.getProperties().values()) {
                     pw.print("  " + StringUtil.format(pv.getKey(), 20));
                     pw.print(StringUtil.format(pv.getValue(), 20));
-                    pw.print(StringUtil.format(pv.getSource(), 20));
+                    pw.print(StringUtil.format(pv.getMeta("source"), 20));
                     pw.println(StringUtil.format(pv.getMeta().toString(), 80));
                 }
                 pw.flush();
diff --git 
a/modules/osgi/common/src/test/java/org/apache/tamaya/osgi/AbstractOSGITest.java
 
b/modules/osgi/common/src/test/java/org/apache/tamaya/osgi/AbstractOSGITest.java
index 41ad2e6..4fe8634 100644
--- 
a/modules/osgi/common/src/test/java/org/apache/tamaya/osgi/AbstractOSGITest.java
+++ 
b/modules/osgi/common/src/test/java/org/apache/tamaya/osgi/AbstractOSGITest.java
@@ -32,7 +32,6 @@ import java.util.Hashtable;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.*;
 
 /**
diff --git 
a/modules/osgi/gogo-shell/src/main/java/org/apache/tamaya/gogo/shell/ConfigCommands.java
 
b/modules/osgi/gogo-shell/src/main/java/org/apache/tamaya/gogo/shell/ConfigCommands.java
index 5a8ae7b..5b26b4c 100644
--- 
a/modules/osgi/gogo-shell/src/main/java/org/apache/tamaya/gogo/shell/ConfigCommands.java
+++ 
b/modules/osgi/gogo-shell/src/main/java/org/apache/tamaya/gogo/shell/ConfigCommands.java
@@ -73,7 +73,7 @@ public class ConfigCommands {
                                 @Descriptor("The property key")String key,
                              @Parameter(absentValue = "false", names={"-e", 
"--extended"})
                                  @Descriptor("Show extended info, 
default=false")Boolean extended) throws IOException {
-        
System.out.println(org.apache.tamaya.osgi.commands.ConfigCommands.getProperty(propertysource,
 key, extended.booleanValue()));
+        
System.out.println(org.apache.tamaya.osgi.commands.ConfigCommands.getProperty(propertysource,
 key, extended));
     }
 
     @Descriptor("Get details of a property source.")
diff --git 
a/modules/osgi/gogo-shell/src/main/java/org/apache/tamaya/gogo/shell/HistoryCommands.java
 
b/modules/osgi/gogo-shell/src/main/java/org/apache/tamaya/gogo/shell/HistoryCommands.java
index 13862e9..a0d6959 100644
--- 
a/modules/osgi/gogo-shell/src/main/java/org/apache/tamaya/gogo/shell/HistoryCommands.java
+++ 
b/modules/osgi/gogo-shell/src/main/java/org/apache/tamaya/gogo/shell/HistoryCommands.java
@@ -64,7 +64,7 @@ public class HistoryCommands {
         if(eventTypes.isEmpty()){
             
System.out.println(org.apache.tamaya.osgi.commands.HistoryCommands.getHistory(
                     getService(TamayaConfigService.class),
-                    pid, null));
+                    pid));
         }else {
             
System.out.println(org.apache.tamaya.osgi.commands.HistoryCommands.getHistory(
                     getService(TamayaConfigService.class),
diff --git 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/AbstractOSGITest.java
 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/AbstractOSGITest.java
index a4bab0f..c446532 100644
--- 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/AbstractOSGITest.java
+++ 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/AbstractOSGITest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.tamaya.gogo.shell;
 
-import org.apache.tamaya.osgi.TamayaConfigPlugin;
 import org.apache.tamaya.osgi.commands.TamayaConfigService;
 import org.junit.Before;
 import org.mockito.Mock;
@@ -30,15 +29,12 @@ import org.osgi.service.cm.ConfigurationAdmin;
 
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
 import java.util.Dictionary;
 import java.util.Hashtable;
 import java.util.Map;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.*;
 
 /**
diff --git 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/BackupCommandsTest.java
 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/BackupCommandsTest.java
index 2e359a0..86dfd04 100644
--- 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/BackupCommandsTest.java
+++ 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/BackupCommandsTest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.tamaya.gogo.shell;
 
-import org.assertj.core.api.Assertions;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/ConfigCommandsTest.java
 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/ConfigCommandsTest.java
index eb0c8c5..5ec0683 100644
--- 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/ConfigCommandsTest.java
+++ 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/ConfigCommandsTest.java
@@ -20,7 +20,6 @@ package org.apache.tamaya.gogo.shell;
 
 import org.apache.tamaya.osgi.Policy;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.runners.MockitoJUnitRunner;
@@ -32,7 +31,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyBoolean;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.verify;
 
 /**
diff --git 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/HistoryCommandsTest.java
 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/HistoryCommandsTest.java
index 8dac595..4b8cf8a 100644
--- 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/HistoryCommandsTest.java
+++ 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/HistoryCommandsTest.java
@@ -18,9 +18,7 @@
  */
 package org.apache.tamaya.gogo.shell;
 
-import org.apache.tamaya.osgi.ConfigHistory;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.runners.MockitoJUnitRunner;
diff --git 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/SettingsCommandsTest.java
 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/SettingsCommandsTest.java
index bc165e9..dab3df4 100644
--- 
a/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/SettingsCommandsTest.java
+++ 
b/modules/osgi/gogo-shell/src/test/java/org/apache/tamaya/gogo/shell/SettingsCommandsTest.java
@@ -20,7 +20,6 @@ package org.apache.tamaya.gogo.shell;
 
 import org.apache.tamaya.osgi.Policy;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.runners.MockitoJUnitRunner;
diff --git 
a/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/OSGIConfigAdminPropertySource.java
 
b/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/OSGIConfigAdminPropertySource.java
index d7beab8..4bba9f5 100644
--- 
a/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/OSGIConfigAdminPropertySource.java
+++ 
b/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/OSGIConfigAdminPropertySource.java
@@ -95,7 +95,7 @@ public class OSGIConfigAdminPropertySource extends 
BasePropertySource{
                 while(keys.hasMoreElements()){
                     String key = keys.nextElement();
                     Object value = props.get(key);
-                    result.put(key, PropertyValue.of(key, 
String.valueOf(value), "OSGI ConfigAdmin: " + pid));
+                    result.put(key, PropertyValue.createValue(key, 
String.valueOf(value)).setMeta("source", "OSGI ConfigAdmin: " + pid));
                 }
                 return result;
             }
diff --git 
a/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/OSGIConfigurationInjector.java
 
b/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/OSGIConfigurationInjector.java
index 1fac59b..f1635c4 100644
--- 
a/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/OSGIConfigurationInjector.java
+++ 
b/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/OSGIConfigurationInjector.java
@@ -19,7 +19,7 @@
 package org.apache.tamaya.osgi.injection;
 
 import org.apache.tamaya.Configuration;
-import org.apache.tamaya.inject.ConfigurationInjection;
+import org.apache.tamaya.inject.ConfigurationInjector;
 import org.osgi.service.cm.ConfigurationAdmin;
 
 import java.util.Objects;
@@ -30,8 +30,6 @@ import java.util.function.Supplier;
  * configuration.
  */
 final class OSGIConfigurationInjector{
-    /** The OSGI ConfigManager. */
-    private ConfigurationAdmin cm;
     /** The corresponding Tamaya configuration. */
     private Configuration tamayaOSGIConfiguration;
     /** The target PID. */
@@ -55,13 +53,13 @@ final class OSGIConfigurationInjector{
      * @param location the optional location.
      */
     public OSGIConfigurationInjector(ConfigurationAdmin cm, String pid, String 
location){
-        this.cm = Objects.requireNonNull(cm);
+        /** The OSGI ConfigManager. */
         this.pid = Objects.requireNonNull(pid);
         this.location = location;
         tamayaOSGIConfiguration = Configuration.createConfigurationBuilder()
                 .addDefaultPropertyConverters()
                 .addDefaultPropertyFilters()
-                .addPropertySources(new OSGIConfigAdminPropertySource(cm, pid, 
location))
+                .addPropertySources(new 
OSGIConfigAdminPropertySource(Objects.requireNonNull(cm), pid, location))
                 .build();
     }
 
@@ -88,7 +86,7 @@ final class OSGIConfigurationInjector{
      * @return the configured instance.
      */
     public <T> T configure(T instance){
-        return ConfigurationInjection.getConfigurationInjector()
+        return ConfigurationInjector.getInstance()
                 .configure(instance, tamayaOSGIConfiguration);
     }
 
@@ -100,7 +98,7 @@ final class OSGIConfigurationInjector{
      * @return a configuring supplier.
      */
     public <T> Supplier<T> 
getConfiguredSupplier(java.util.function.Supplier<T> supplier){
-        return ConfigurationInjection.getConfigurationInjector()
+        return ConfigurationInjector.getInstance()
                 .getConfiguredSupplier(supplier, tamayaOSGIConfiguration);
     }
 
@@ -112,7 +110,7 @@ final class OSGIConfigurationInjector{
      * @return the configured template.
      */
     public <T> T createTemplate(Class<T> templateType){
-        return ConfigurationInjection.getConfigurationInjector()
+        return ConfigurationInjector.getInstance()
                 .createTemplate(templateType, tamayaOSGIConfiguration);
     }
 }
diff --git 
a/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/TamayaOSGIInjector.java
 
b/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/TamayaOSGIInjector.java
index 8f3cfc5..4969433 100644
--- 
a/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/TamayaOSGIInjector.java
+++ 
b/modules/osgi/injection/src/main/java/org/apache/tamaya/osgi/injection/TamayaOSGIInjector.java
@@ -18,7 +18,6 @@
  */
 package org.apache.tamaya.osgi.injection;
 
-import org.apache.tamaya.Configuration;
 import org.apache.tamaya.osgi.TamayaConfigPlugin;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
@@ -150,7 +149,7 @@ public class TamayaOSGIInjector{
      * @return true, if injection is enabled.
      */
     static boolean isInjectionEnabled(Bundle bundle){
-        String enabledVal = 
(String)bundle.getHeaders().get(ConfigInjectionService.TAMAYA_INJECTION_ENABLED_MANIFEST);
+        String enabledVal = 
bundle.getHeaders().get(ConfigInjectionService.TAMAYA_INJECTION_ENABLED_MANIFEST);
         if(enabledVal!=null){
             enabledVal = enabledVal.toLowerCase(Locale.ENGLISH);
             switch(enabledVal){
diff --git 
a/modules/osgi/injection/src/test/java/org/apache/tamaya/osgi/injection/AbstractOSGITest.java
 
b/modules/osgi/injection/src/test/java/org/apache/tamaya/osgi/injection/AbstractOSGITest.java
index e3f73c3..610e8cb 100644
--- 
a/modules/osgi/injection/src/test/java/org/apache/tamaya/osgi/injection/AbstractOSGITest.java
+++ 
b/modules/osgi/injection/src/test/java/org/apache/tamaya/osgi/injection/AbstractOSGITest.java
@@ -32,7 +32,6 @@ import java.util.Hashtable;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.*;
 
 /**
diff --git 
a/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/ApplyTamayaConfigCommand.java
 
b/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/ApplyTamayaConfigCommand.java
index 6a2502f..9864ecc 100644
--- 
a/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/ApplyTamayaConfigCommand.java
+++ 
b/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/ApplyTamayaConfigCommand.java
@@ -23,7 +23,6 @@ import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.Option;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.tamaya.osgi.TamayaConfigPlugin;
 import org.apache.tamaya.osgi.commands.ConfigCommands;
 import org.apache.tamaya.osgi.commands.TamayaConfigService;
 
diff --git 
a/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryDeleteAllCommand.java
 
b/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryDeleteAllCommand.java
index cca7c4c..2e816dd 100644
--- 
a/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryDeleteAllCommand.java
+++ 
b/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryDeleteAllCommand.java
@@ -19,7 +19,6 @@
 package org.apache.tamaya.karaf.shell;
 
 import org.apache.karaf.shell.api.action.Action;
-import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.lifecycle.Reference;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
diff --git 
a/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourcesCommand.java
 
b/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourcesCommand.java
index e7d725d..8301914 100644
--- 
a/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourcesCommand.java
+++ 
b/modules/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourcesCommand.java
@@ -21,10 +21,7 @@ package org.apache.tamaya.karaf.shell;
 import org.apache.karaf.shell.api.action.Action;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.tamaya.Configuration;
-import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.osgi.commands.ConfigCommands;
-import org.apache.tamaya.spi.PropertySource;
 
 import java.io.IOException;
 
diff --git 
a/modules/osgi/updater/src/test/java/org/apache/tamaya/osgi/updater/AbstractOSGITest.java
 
b/modules/osgi/updater/src/test/java/org/apache/tamaya/osgi/updater/AbstractOSGITest.java
index 6f9f521..d71cb1a 100644
--- 
a/modules/osgi/updater/src/test/java/org/apache/tamaya/osgi/updater/AbstractOSGITest.java
+++ 
b/modules/osgi/updater/src/test/java/org/apache/tamaya/osgi/updater/AbstractOSGITest.java
@@ -18,7 +18,6 @@
  */
 package org.apache.tamaya.osgi.updater;
 
-import org.apache.tamaya.osgi.TamayaConfigPlugin;
 import org.apache.tamaya.osgi.commands.TamayaConfigService;
 import org.junit.Before;
 import org.mockito.Mock;
@@ -33,7 +32,6 @@ import java.util.Hashtable;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.*;
 
 /**
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 3ea30eb..4b27954 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
@@ -113,10 +113,8 @@ public class DefaultExpressionEvaluator implements 
ExpressionEvaluator {
     @Override
     public Collection<ExpressionResolver> getResolvers() {
         List<ExpressionResolver> resolvers = new ArrayList<>();
-        for (ExpressionResolver resolver : 
ServiceContextManager.getServiceContext().getServices(ExpressionResolver.class))
 {
-            resolvers.add(resolver);
-        }
-        Collections.sort(resolvers, RESOLVER_COMPARATOR);
+        
resolvers.addAll(ServiceContextManager.getServiceContext().getServices(ExpressionResolver.class));
+        resolvers.sort(RESOLVER_COMPARATOR);
         return resolvers;
     }
 
@@ -178,7 +176,7 @@ public class DefaultExpressionEvaluator implements 
ExpressionEvaluator {
      * Evaluates the expression parsed, hereby checking for prefixes and 
trying otherwise all available resolvers,
      * based on priority.
      *
-     * @param propertyValue
+     * @param propertyValue the current value, not null.
      * @param unresolvedExpression the parsed, but unresolved expression
      * @param maskUnresolved if true, not found expression parts will be 
replaced by surrounding with [].
      *                     Setting to false will replace the createValue with 
an empty String.
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 fa8e536..096dce7 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
@@ -76,7 +76,7 @@ public abstract class AbstractPathPropertySourceProvider 
implements PropertySour
         List<PropertySource> propertySources = new ArrayList<>();
         for (String resource : getResourcePaths()) {
             try {
-                Collection<URL> resources = 
ConfigResources.getResourceResolver(classLoader).getResources(resource);
+                Collection<URL> resources = 
ResourceResolver.getInstance(getClassLoader()).getResources(resource);
                 for (URL url : resources) {
                     try {
                         Collection<PropertySource>  propertySourcesToInclude = 
getPropertySources(url);
@@ -149,7 +149,8 @@ public abstract class AbstractPathPropertySourceProvider 
implements PropertySour
             this.name = Objects.requireNonNull(name);
             for (Entry<Object, Object> en : props.entrySet()) {
                 this.properties.put(en.getKey().toString(),
-                        PropertyValue.of(en.getKey().toString(), 
String.valueOf(en.getValue()), name));
+                        PropertyValue.createValue(en.getKey().toString(), 
String.valueOf(en.getValue()))
+                .setMeta("source", name));
             }
         }
 
@@ -162,7 +163,9 @@ public abstract class AbstractPathPropertySourceProvider 
implements PropertySour
             this.name = Objects.requireNonNull(name);
             for (Entry<String, String> en : props.entrySet()) {
                 this.properties.put(en.getKey(),
-                        PropertyValue.of(en.getKey(), en.getValue(), name));
+                        PropertyValue.createValue(en.getKey(), en.getValue()))
+                .setMeta("source", name);
+
             }
         }
 
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 2567ebb..f27f7ef 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
@@ -227,7 +227,7 @@ public class ClasspathCollector {
      * @param url          the root, not null
      * @param relativePath the relative path to be added, not null
      * @return the new URL instance
-     * @throws MalformedURLException
+     * @throws MalformedURLException if the url passed cannot be externalized
      */
     private URL createRelativeFrom(URL url, String relativePath)
             throws MalformedURLException {
@@ -282,7 +282,7 @@ public class ClasspathCollector {
      * @param rootResource the root resource for evaluating its getValues.
      * @param locationPattern the sub pattern that all getValues must mach, so 
they are selected.
      * @return the resources found, never null.
-     * @throws IOException
+     * @throws IOException on Vfs error
      */
     private static Collection<URL> findMatchingVfsResources(
             URL rootResource, String locationPattern) throws IOException {
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 51d6053..0d703d4 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
@@ -39,13 +39,13 @@ class VfsSupport {
     private static final String VFS3_PKG = "org.jboss.vfs.";
     private static final String VFS_PROTOCOL = "VFS";
 
-    private static Method methodGetRootUrl = null;
+    private static Method methodGetRootUrl;
     private static Method methodToUrl;
     private static Method methodGetPathName;
     private static Class<?> fileVisitorInterface;
     private static Method methodVisit;
-    private static Field visitorAttributesField = null;
-    private static Method methodGetPhysicalFile = null;
+    private static Field visitorAttributesField;
+    private static Method methodGetPhysicalFile;
 
     /**
      * Private constructor.
@@ -78,7 +78,7 @@ class VfsSupport {
      *
      * @param resource the resource
      * @param visitor  the visitor.
-     * @throws IOException
+     * @throws IOException on Vfs error
      */
     static void visit(Object resource, InvocationHandler visitor) throws 
IOException {
         Object visitorProxy = Proxy.newProxyInstance(
@@ -110,7 +110,7 @@ class VfsSupport {
      *
      * @param vfsResource the cfw resource, not null
      * @return the corresponding URL
-     * @throws IOException
+     * @throws IOException  on Vfs error
      */
     static URL getURL(Object vfsResource) throws IOException {
         return (URL) invokeVfsMethod(methodToUrl, vfsResource);
@@ -121,7 +121,7 @@ class VfsSupport {
      *
      * @param url the url
      * @return the corresponding VFS resource.
-     * @throws IOException
+     * @throws IOException on Vfs error
      */
     static Object getRelative(URL url) throws IOException {
         return invokeVfsMethod(methodGetRootUrl, null, url);
@@ -132,7 +132,7 @@ class VfsSupport {
      *
      * @param vfsResource the VFS resource
      * @return the file.
-     * @throws IOException
+     * @throws IOException on Vfs error
      */
     static File getFile(Object vfsResource) throws IOException {
         return (File) invokeVfsMethod(methodGetPhysicalFile, vfsResource);
@@ -143,7 +143,7 @@ class VfsSupport {
      *
      * @param url the url
      * @return the root resource.
-     * @throws IOException
+     * @throws IOException on Vfs error
      */
     static Object getRoot(URL url) throws IOException {
         return invokeVfsMethod(methodGetRootUrl, null, url);
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 00399ec..d8acd46 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
@@ -18,8 +18,6 @@
  */
 package org.apache.tamaya.resource.internal;
 
-import org.junit.Ignore;
-
 import java.net.URL;
 import java.util.Collection;
 
diff --git 
a/modules/resources/src/test/java/org/apache/tamaya/resource/internal/PathBasedPropertySourceProvider.java
 
b/modules/resources/src/test/java/org/apache/tamaya/resource/internal/PathBasedPropertySourceProvider.java
index 7e2f622..4ab36de 100644
--- 
a/modules/resources/src/test/java/org/apache/tamaya/resource/internal/PathBasedPropertySourceProvider.java
+++ 
b/modules/resources/src/test/java/org/apache/tamaya/resource/internal/PathBasedPropertySourceProvider.java
@@ -60,9 +60,8 @@ public class PathBasedPropertySourceProvider extends 
AbstractPathPropertySourceP
             this.name = Objects.requireNonNull(name);
             for (Map.Entry en : props.entrySet()) {
                 this.properties.put(en.getKey().toString(),
-                        PropertyValue.of(en.getKey().toString(),
-                                String.valueOf(en.getValue()),
-                                name));
+                        PropertyValue.createValue(en.getKey().toString(),
+                                
String.valueOf(en.getValue())).setMeta("source", name));
             }
         }
 
diff --git 
a/modules/spring/src/main/java/org/apache/tamaya/integration/spring/SpringConfigInjectionPostProcessor.java
 
b/modules/spring/src/main/java/org/apache/tamaya/integration/spring/SpringConfigInjectionPostProcessor.java
index 84aecbb..279351e 100644
--- 
a/modules/spring/src/main/java/org/apache/tamaya/integration/spring/SpringConfigInjectionPostProcessor.java
+++ 
b/modules/spring/src/main/java/org/apache/tamaya/integration/spring/SpringConfigInjectionPostProcessor.java
@@ -18,21 +18,21 @@
  */
 package org.apache.tamaya.integration.spring;
 
-import org.apache.tamaya.inject.ConfigurationInjection;
+import org.apache.tamaya.inject.ConfigurationInjector;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.config.BeanPostProcessor;
 import org.springframework.stereotype.Component;
 
 
 /**
- * PostProcessor that performs injection of configured values using Tamaya 
{@link ConfigurationInjection}.
+ * PostProcessor that performs injection of configured values using Tamaya 
{@link ConfigurationInjector}.
  */
 @Component
 public class SpringConfigInjectionPostProcessor implements BeanPostProcessor{
 
     @Override
     public Object postProcessBeforeInitialization(Object o, String s) throws 
BeansException {
-        ConfigurationInjection.getConfigurationInjector().configure(o);
+        ConfigurationInjector.getInstance().configure(o);
         return o;
     }
 

Reply via email to