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(); + } }