TAMAYA-217: Added equals/hashCode for converters.

Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/commit/0c7ed25c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/tree/0c7ed25c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya/diff/0c7ed25c

Branch: refs/heads/master
Commit: 0c7ed25c3ec2b321196645b7a82a610b9e41b671
Parents: 7796303
Author: anatole <anat...@apache.org>
Authored: Thu Dec 22 21:55:11 2016 +0100
Committer: anatole <anat...@apache.org>
Committed: Thu Dec 22 21:55:11 2016 +0100

----------------------------------------------------------------------
 .../DefaultConfigurationContextBuilder.java     | 54 ++++++++++++++++----
 .../tamaya/core/internal/OSGIActivator.java     | 16 +++++-
 .../core/internal/OSGIServiceContext.java       | 33 ++++++++++--
 .../tamaya/core/internal/OSGIServiceLoader.java | 11 ++--
 .../converters/BigDecimalConverter.java         | 10 ++++
 .../converters/BigIntegerConverter.java         | 10 ++++
 .../internal/converters/BooleanConverter.java   | 10 ++++
 .../core/internal/converters/ByteConverter.java | 10 ++++
 .../core/internal/converters/CharConverter.java |  9 ++++
 .../internal/converters/ClassConverter.java     | 10 ++++
 .../internal/converters/CurrencyConverter.java  | 10 ++++
 .../internal/converters/DoubleConverter.java    | 10 ++++
 .../core/internal/converters/EnumConverter.java | 13 +++++
 .../core/internal/converters/FileConverter.java | 10 ++++
 .../internal/converters/FloatConverter.java     | 10 ++++
 .../internal/converters/IntegerConverter.java   | 10 ++++
 .../core/internal/converters/LongConverter.java |  9 ++++
 .../internal/converters/NumberConverter.java    | 10 ++++
 .../core/internal/converters/PathConverter.java | 10 ++++
 .../internal/converters/ShortConverter.java     | 10 ++++
 .../core/internal/converters/URIConverter.java  | 10 ++++
 .../core/internal/converters/URLConverter.java  | 10 ++++
 22 files changed, 273 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java
index 2e34842..f825614 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/DefaultConfigurationContextBuilder.java
@@ -20,6 +20,11 @@ package org.apache.tamaya.core.internal;
 
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.TypeLiteral;
+import org.apache.tamaya.core.internal.converters.*;
+import org.apache.tamaya.core.propertysource.CLIPropertySource;
+import org.apache.tamaya.core.propertysource.EnvironmentPropertySource;
+import org.apache.tamaya.core.propertysource.SystemPropertySource;
+import org.apache.tamaya.core.propertysource.JavaConfigurationPropertySource;
 import org.apache.tamaya.spi.ConfigurationContext;
 import org.apache.tamaya.spi.ConfigurationContextBuilder;
 import org.apache.tamaya.spi.PropertyConverter;
@@ -29,16 +34,14 @@ import org.apache.tamaya.spi.PropertySourceProvider;
 import org.apache.tamaya.spi.PropertyValueCombinationPolicy;
 import org.apache.tamaya.spi.ServiceContextManager;
 
+import java.io.File;
 import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.net.URI;
+import java.net.URL;
+import java.nio.file.Path;
+import java.util.*;
 import java.util.logging.Logger;
 
 /**
@@ -131,6 +134,7 @@ public class DefaultConfigurationContextBuilder implements 
ConfigurationContextB
     public ConfigurationContextBuilder addDefaultPropertySources() {
         checkBuilderState();
         List<PropertySource> propertySources = new ArrayList<>();
+        addCorePropertyResources(propertySources);
         
propertySources.addAll(ServiceContextManager.getServiceContext().getServices(PropertySource.class));
         for(PropertySourceProvider provider:
                 
ServiceContextManager.getServiceContext().getServices(PropertySourceProvider.class)){
@@ -140,6 +144,13 @@ public class DefaultConfigurationContextBuilder implements 
ConfigurationContextB
         return addPropertySources(propertySources);
     }
 
+    private void addCorePropertyResources(List<PropertySource> 
propertySources) {
+        propertySources.add(new EnvironmentPropertySource());
+        propertySources.add(new JavaConfigurationPropertySource());
+        propertySources.add(new CLIPropertySource());
+        propertySources.add(new SystemPropertySource());
+    }
+
     @Override
     public ConfigurationContextBuilder addDefaultPropertyFilters() {
         checkBuilderState();
@@ -153,6 +164,7 @@ public class DefaultConfigurationContextBuilder implements 
ConfigurationContextB
     @Override
     public DefaultConfigurationContextBuilder addDefaultPropertyConverters() {
         checkBuilderState();
+        addCorePropertyConverters();
         for(Map.Entry<TypeLiteral, Collection<PropertyConverter>> 
en:getDefaultPropertyConverters().entrySet()){
             for(PropertyConverter pc: en.getValue()) {
                 addPropertyConverters(en.getKey(), pc);
@@ -161,6 +173,26 @@ public class DefaultConfigurationContextBuilder implements 
ConfigurationContextB
         return this;
     }
 
+    private void addCorePropertyConverters() {
+        addPropertyConverters(TypeLiteral.<BigDecimal>of(BigDecimal.class), 
new BigDecimalConverter());
+        addPropertyConverters(TypeLiteral.<BigInteger>of(BigInteger.class), 
new BigIntegerConverter());
+        addPropertyConverters(TypeLiteral.<Boolean>of(Boolean.class), new 
BooleanConverter());
+        addPropertyConverters(TypeLiteral.<Byte>of(Byte.class), new 
ByteConverter());
+        addPropertyConverters(TypeLiteral.<Character>of(Character.class), new 
CharConverter());
+        addPropertyConverters(TypeLiteral.<Class<?>>of(Class.class), new 
ClassConverter());
+        addPropertyConverters(TypeLiteral.<Currency>of(Currency.class), new 
CurrencyConverter());
+        addPropertyConverters(TypeLiteral.<Double>of(Double.class), new 
DoubleConverter());
+        addPropertyConverters(TypeLiteral.<File>of(File.class), new 
FileConverter());
+        addPropertyConverters(TypeLiteral.<Float>of(Float.class), new 
FloatConverter());
+        addPropertyConverters(TypeLiteral.<Integer>of(Integer.class), new 
IntegerConverter());
+        addPropertyConverters(TypeLiteral.<Long>of(Long.class), new 
LongConverter());
+        addPropertyConverters(TypeLiteral.<Number>of(Number.class), new 
NumberConverter());
+        addPropertyConverters(TypeLiteral.<Path>of(Path.class), new 
PathConverter());
+        addPropertyConverters(TypeLiteral.<Short>of(Short.class), new 
ShortConverter());
+        addPropertyConverters(TypeLiteral.<URI>of(URI.class), new 
URIConverter());
+        addPropertyConverters(TypeLiteral.<URL>of(URL.class), new 
URLConverter());
+    }
+
     @Override
     public ConfigurationContextBuilder removePropertySources(PropertySource... 
propertySources) {
         return removePropertySources(Arrays.asList(propertySources));
@@ -317,7 +349,7 @@ public class DefaultConfigurationContextBuilder implements 
ConfigurationContextB
             if (!converters.contains(propertyConverter)) {
                 converters.add(propertyConverter);
             } else {
-                LOG.warning("Converter ignored, already registered: " + 
propertyConverter);
+                LOG.finer("Converter ignored, already registered: " + 
propertyConverter);
             }
         }
         return this;
@@ -337,7 +369,7 @@ public class DefaultConfigurationContextBuilder implements 
ConfigurationContextB
             if (!converters.contains(propertyConverter)) {
                 converters.add(propertyConverter);
             } else {
-                LOG.warning("Converter ignored, already registered: " + 
propertyConverter);
+                LOG.finer("Converter ignored, already registered: " + 
propertyConverter);
             }
         }
         return this;

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIActivator.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIActivator.java 
b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIActivator.java
index 17c778e..6e18f0f 100644
--- a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIActivator.java
+++ b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIActivator.java
@@ -20,6 +20,7 @@ package org.apache.tamaya.core.internal;
 
 
 
+import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.spi.ServiceContextManager;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
@@ -39,10 +40,21 @@ public class OSGIActivator implements BundleActivator {
     public void start(BundleContext context) {
         // Register marker service
         serviceLoader = new OSGIServiceLoader(context);
+        context.addBundleListener(serviceLoader);
         ServiceContextManager.set(new OSGIServiceContext(serviceLoader));
         LOG.info("Registered OSGI enabled ServiceContext...");
-
-        context.addBundleListener(serviceLoader);
+        ConfigurationProvider.setConfiguration(
+                new DefaultConfiguration(
+                       new DefaultConfigurationContextBuilder()
+                        .addDefaultPropertyConverters()
+                        .addDefaultPropertyFilters()
+                        .addDefaultPropertySources()
+                        
.sortPropertyFilter(PropertyFilterComparator.getInstance())
+                        
.sortPropertySources(PropertySourceComparator.getInstance())
+                        .build()
+                )
+        );
+        LOG.info("Loaded default configuration from OSGI.");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java
index 501c42f..3763937 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceContext.java
@@ -27,12 +27,14 @@ import org.osgi.framework.ServiceReference;
 import java.io.IOException;
 import java.net.URL;
 import java.util.*;
+import java.util.logging.Logger;
 
 /**
  * ServiceContext implementation based on OSGI Service mechanisms.
  */
 public class OSGIServiceContext implements ServiceContext{
 
+    private static final Logger LOG = 
Logger.getLogger(OSGIServiceContext.class.getName());
     private static final OSGIServiceComparator REF_COMPARATOR = new 
OSGIServiceComparator();
 
     private final OSGIServiceLoader osgiServiceLoader;
@@ -53,6 +55,7 @@ public class OSGIServiceContext implements ServiceContext{
 
     @Override
     public <T> T getService(Class<T> serviceType) {
+        LOG.finest("TAMAYA  Loading service: " + serviceType.getName());
         ServiceReference<T> ref = 
this.osgiServiceLoader.getBundleContext().getServiceReference(serviceType);
         if(ref!=null){
             return this.osgiServiceLoader.getBundleContext().getService(ref);
@@ -70,6 +73,7 @@ public class OSGIServiceContext implements ServiceContext{
 
     @Override
     public <T> T create(Class<T> serviceType) {
+        LOG.finest("TAMAYA  Creating service: " + serviceType.getName());
         ServiceReference<T> ref = 
this.osgiServiceLoader.getBundleContext().getServiceReference(serviceType);
         if(ref!=null){
             try {
@@ -83,6 +87,7 @@ public class OSGIServiceContext implements ServiceContext{
 
     @Override
     public <T> List<T> getServices(Class<T> serviceType) {
+        LOG.finest("TAMAYA  Loading services: " + serviceType.getName());
         List<ServiceReference<T>> refs = new ArrayList<>();
         try {
             
refs.addAll(this.osgiServiceLoader.getBundleContext().getServiceReferences(serviceType,
 null));
@@ -103,18 +108,27 @@ public class OSGIServiceContext implements ServiceContext{
 
     @Override
     public Enumeration<URL> getResources(String resource, ClassLoader cl) 
throws IOException{
+        LOG.finest("TAMAYA  Loading resources: " + resource);
         List<URL> result = new ArrayList<>();
         URL url = osgiServiceLoader.getBundleContext().getBundle()
                 .getEntry(resource);
         if(url != null) {
+            LOG.finest("TAMAYA  Resource: " + resource + " found in 
unregistered bundle " +
+                    
osgiServiceLoader.getBundleContext().getBundle().getSymbolicName());
             result.add(url);
         }
         for(Bundle bundle: osgiServiceLoader.getResourceBundles()) {
             url = bundle.getEntry(resource);
-            if (url != null) {
-                if(!result.contains(url)) {
-                    result.add(url);
-                }
+            if (url != null && !result.contains(url)) {
+                LOG.finest("TAMAYA  Resource: " + resource + " found in 
registered bundle " + bundle.getSymbolicName());
+                result.add(url);
+            }
+        }
+        for(Bundle bundle: osgiServiceLoader.getBundleContext().getBundles()) {
+            url = bundle.getEntry(resource);
+            if (url != null && !result.contains(url)) {
+                LOG.finest("TAMAYA  Resource: " + resource + " found in 
unregistered bundle " + bundle.getSymbolicName());
+                result.add(url);
             }
         }
         return Collections.enumeration(result);
@@ -122,14 +136,25 @@ public class OSGIServiceContext implements ServiceContext{
 
     @Override
     public URL getResource(String resource, ClassLoader cl){
+        LOG.finest("TAMAYA  Loading resource: " + resource);
         URL url = osgiServiceLoader.getBundleContext().getBundle()
                 .getEntry(resource);
         if(url!=null){
+            LOG.finest("TAMAYA  Resource: " + resource + " found in bundle " +
+                    
osgiServiceLoader.getBundleContext().getBundle().getSymbolicName());
             return url;
         }
         for(Bundle bundle: osgiServiceLoader.getResourceBundles()) {
             url = bundle.getEntry(resource);
             if(url != null){
+                LOG.finest("TAMAYA  Resource: " + resource + " found in 
registered bundle " + bundle.getSymbolicName());
+                return url;
+            }
+        }
+        for(Bundle bundle: osgiServiceLoader.getBundleContext().getBundles()) {
+            url = bundle.getEntry(resource);
+            if(url != null){
+                LOG.finest("TAMAYA  Resource: " + resource + " found in 
unregistered bundle " + bundle.getSymbolicName());
                 return url;
             }
         }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
index 89d28c0..96f9562 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/OSGIServiceLoader.java
@@ -38,6 +38,7 @@ import org.osgi.util.tracker.ServiceTracker;
 public class OSGIServiceLoader implements BundleListener {
     // Provide logging
     private static final Logger log = 
Logger.getLogger(OSGIServiceLoader.class.getName());
+    private static final String OSGIRESOURCE_MARKER = "META-INF/OSGIResource";
 
     private BundleContext context;
 
@@ -61,10 +62,10 @@ public class OSGIServiceLoader implements BundleListener {
 
     @Override
     public void bundleChanged(BundleEvent bundleEvent) {
-        // Parse and create metadta on STARTING
-        if (bundleEvent.getType() == BundleEvent.STARTED) {
+        // Parse and create metadata on STARTING
+        if (bundleEvent.getType() == BundleEvent.STARTING) {
             Bundle bundle = bundleEvent.getBundle();
-            if (bundle.getEntry("META-INF/OSGIResource") != null) {
+            if (bundle.getEntry(OSGIRESOURCE_MARKER) != null) {
                 synchronized (resourceBundles){
                     resourceBundles.add(bundle);
                 }
@@ -79,9 +80,9 @@ public class OSGIServiceLoader implements BundleListener {
                     processEntryPath(bundle, entryPath);
                 }
             }
-        }else if (bundleEvent.getType() == BundleEvent.STOPPED) {
+        } else if (bundleEvent.getType() == BundleEvent.STOPPING) {
             Bundle bundle = bundleEvent.getBundle();
-            if (bundle.getEntry("META-INF/OSGIResources") != null) {
+            if (bundle.getEntry(OSGIRESOURCE_MARKER) != null) {
                 synchronized (resourceBundles){
                     resourceBundles.remove(bundle);
                 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java
index 2c17214..6779809 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigDecimalConverter.java
@@ -60,4 +60,14 @@ public class BigDecimalConverter implements 
PropertyConverter<BigDecimal>{
             return null;
         }
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java
index a5a32b3..19052f7 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BigIntegerConverter.java
@@ -91,4 +91,14 @@ public class BigIntegerConverter implements 
PropertyConverter<BigInteger>{
         }
     }
 
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
index 93b1da3..d926b14 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/BooleanConverter.java
@@ -54,4 +54,14 @@ public class BooleanConverter implements 
PropertyConverter<Boolean> {
         }
         return null;
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java
index fc2bf9d..1382fdb 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ByteConverter.java
@@ -68,4 +68,14 @@ public class ByteConverter implements 
PropertyConverter<Byte>{
                 }
         }
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java
index dd6f557..fe332af 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CharConverter.java
@@ -66,4 +66,13 @@ public class CharConverter implements 
PropertyConverter<Character>{
         }
     }
 
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java
index e1823e9..15311b2 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ClassConverter.java
@@ -63,4 +63,14 @@ public class ClassConverter implements 
PropertyConverter<Class<?>>{
             return null;
         }
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java
index f774693..bdbc7a1 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/CurrencyConverter.java
@@ -87,4 +87,14 @@ public class CurrencyConverter implements 
PropertyConverter<Currency> {
         }
         return null;
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java
index 791632d..2311d9b 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/DoubleConverter.java
@@ -78,4 +78,14 @@ public class DoubleConverter implements 
PropertyConverter<Double> {
         }
 
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java
index 01c15eb..d19c2f5 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/EnumConverter.java
@@ -65,4 +65,17 @@ public class EnumConverter<T> implements 
PropertyConverter<T> {
         }
         return null;
     }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (!(o instanceof EnumConverter)) return false;
+        EnumConverter<?> that = (EnumConverter<?>) o;
+        return Objects.equals(enumType, that.enumType);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(enumType);
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java
index 6e4109d..4e9ecea 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FileConverter.java
@@ -48,4 +48,14 @@ public class FileConverter implements 
PropertyConverter<File> {
         }
         return null;
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java
index d66f1f9..7a27f98 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/FloatConverter.java
@@ -78,4 +78,14 @@ public class FloatConverter implements 
PropertyConverter<Float> {
                 return null;
         }
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java
index 313cb63..27ce70f 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/IntegerConverter.java
@@ -71,4 +71,14 @@ public class IntegerConverter implements 
PropertyConverter<Integer>{
         }
 
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java
index 11cda90..fee2efd 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/LongConverter.java
@@ -67,6 +67,15 @@ public class LongConverter implements 
PropertyConverter<Long>{
                         return null;
                     }
             }
+    }
 
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java
index d267580..06f1e18 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/NumberConverter.java
@@ -69,4 +69,14 @@ public class NumberConverter implements 
PropertyConverter<Number>{
                 }
         }
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java
index 6c0b287..9d334c8 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/PathConverter.java
@@ -51,4 +51,14 @@ public class PathConverter implements 
PropertyConverter<Path> {
         }
         return null;
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java
index dd9ebdd..e42bc26 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/ShortConverter.java
@@ -69,4 +69,14 @@ public class ShortConverter implements 
PropertyConverter<Short>{
         }
     }
 
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java
index 55273e0..9304f27 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URIConverter.java
@@ -47,4 +47,14 @@ public class URIConverter implements PropertyConverter<URI> {
         }
         return null;
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tamaya/blob/0c7ed25c/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java
----------------------------------------------------------------------
diff --git 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java
 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java
index e250943..bca7637 100644
--- 
a/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java
+++ 
b/code/core/src/main/java/org/apache/tamaya/core/internal/converters/URLConverter.java
@@ -47,4 +47,14 @@ public class URLConverter implements PropertyConverter<URL> {
         }
         return null;
     }
+
+    @Override
+    public boolean equals(Object o){
+        return getClass().equals(o.getClass());
+    }
+
+    @Override
+    public int hashCode(){
+        return getClass().hashCode();
+    }
 }

Reply via email to