From 0c15eef8588c407b3313f93e0166c8effe63fac5 Mon Sep 17 00:00:00 2001 From: Peter-Josef Meisch Date: Sun, 9 Feb 2020 19:31:16 +0100 Subject: [PATCH] DATAES-740 - Adapt to spring-data-commons changes. Original PR: #386 --- .../config/ElasticsearchConfigurationSupport.java | 2 +- .../convert/ElasticsearchCustomConversions.java | 14 ++++++++++---- .../elasticsearch/core/convert/GeoConverters.java | 11 ++++++----- .../convert/MappingElasticsearchConverter.java | 2 +- .../MappingElasticsearchConverterUnitTests.java | 2 +- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchConfigurationSupport.java b/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchConfigurationSupport.java index 949822ac5..b33fcde37 100644 --- a/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchConfigurationSupport.java +++ b/src/main/java/org/springframework/data/elasticsearch/config/ElasticsearchConfigurationSupport.java @@ -76,7 +76,7 @@ public class ElasticsearchConfigurationSupport { */ @Bean public ElasticsearchCustomConversions elasticsearchCustomConversions() { - return new ElasticsearchCustomConversions(Collections.emptyList()); + return ElasticsearchCustomConversions.of(Collections.emptyList()); } /** diff --git a/src/main/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchCustomConversions.java b/src/main/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchCustomConversions.java index c42078491..d44660255 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchCustomConversions.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/convert/ElasticsearchCustomConversions.java @@ -39,11 +39,11 @@ import org.springframework.util.NumberUtils; public class ElasticsearchCustomConversions extends CustomConversions { private static final StoreConversions STORE_CONVERSIONS; - private static final List STORE_CONVERTERS; + private static final List> STORE_CONVERTERS; static { - List converters = new ArrayList<>(GeoConverters.getConvertersToRegister()); + List> converters = new ArrayList<>(); converters.add(StringToUUIDConverter.INSTANCE); converters.add(UUIDToStringConverter.INSTANCE); converters.add(BigDecimalToDoubleConverter.INSTANCE); @@ -58,8 +58,14 @@ public class ElasticsearchCustomConversions extends CustomConversions { * * @param converters must not be {@literal null}. */ - public ElasticsearchCustomConversions(Collection converters) { - super(STORE_CONVERSIONS, converters); + public static ElasticsearchCustomConversions of(Collection> converters) { + List> userConverters = new ArrayList<>(GeoConverters.getConvertersToRegister()); + userConverters.addAll(converters); + return new ElasticsearchCustomConversions(STORE_CONVERSIONS, userConverters); + } + + private ElasticsearchCustomConversions(StoreConversions storeConversions, Collection converters) { + super(storeConversions, converters); } /** diff --git a/src/main/java/org/springframework/data/elasticsearch/core/convert/GeoConverters.java b/src/main/java/org/springframework/data/elasticsearch/core/convert/GeoConverters.java index 4ebb27ab4..b25e12c91 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/convert/GeoConverters.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/convert/GeoConverters.java @@ -31,11 +31,12 @@ import org.springframework.util.NumberUtils; * Set of {@link Converter converters} specific to Elasticsearch Geo types. * * @author Christoph Strobl + * @author Peter-Josef Meisch * @since 3.2 */ class GeoConverters { - static Collection getConvertersToRegister() { + static Collection> getConvertersToRegister() { return Arrays.asList(PointToMapConverter.INSTANCE, MapToPointConverter.INSTANCE, GeoPointToMapConverter.INSTANCE, MapToGeoPointConverter.INSTANCE); @@ -50,7 +51,7 @@ class GeoConverters { INSTANCE; @Override - public Map convert(Point source) { + public Map convert(Point source) { Map target = new LinkedHashMap<>(); target.put("lat", source.getX()); @@ -68,7 +69,7 @@ class GeoConverters { INSTANCE; @Override - public Map convert(GeoPoint source) { + public Map convert(GeoPoint source) { Map target = new LinkedHashMap<>(); target.put("lat", source.getLat()); target.put("lon", source.getLon()); @@ -85,7 +86,7 @@ class GeoConverters { INSTANCE; @Override - public Point convert(Map source) { + public Point convert(Map source) { Double x = NumberUtils.convertNumberToTargetClass((Number) source.get("lat"), Double.class); Double y = NumberUtils.convertNumberToTargetClass((Number) source.get("lon"), Double.class); @@ -102,7 +103,7 @@ class GeoConverters { INSTANCE; @Override - public GeoPoint convert(Map source) { + public GeoPoint convert(Map source) { Double x = NumberUtils.convertNumberToTargetClass((Number) source.get("lat"), Double.class); Double y = NumberUtils.convertNumberToTargetClass((Number) source.get("lon"), Double.class); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.java b/src/main/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.java index ab7cb01e6..b54dc54bd 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.java @@ -85,7 +85,7 @@ public class MappingElasticsearchConverter private final MappingContext, ElasticsearchPersistentProperty> mappingContext; private final GenericConversionService conversionService; - private CustomConversions conversions = new ElasticsearchCustomConversions(Collections.emptyList()); + private CustomConversions conversions = ElasticsearchCustomConversions.of(Collections.emptyList()); private EntityInstantiators instantiators = new EntityInstantiators(); private ElasticsearchTypeMapper typeMapper; diff --git a/src/test/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverterUnitTests.java b/src/test/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverterUnitTests.java index 35a27b6a4..ba631a838 100644 --- a/src/test/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverterUnitTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverterUnitTests.java @@ -108,7 +108,7 @@ public class MappingElasticsearchConverterUnitTests { mappingElasticsearchConverter = new MappingElasticsearchConverter(mappingContext, new GenericConversionService()); mappingElasticsearchConverter.setConversions( - new ElasticsearchCustomConversions(Arrays.asList(new ShotGunToMapConverter(), new MapToShotGunConverter()))); + ElasticsearchCustomConversions.of(Arrays.asList(new ShotGunToMapConverter(), new MapToShotGunConverter()))); mappingElasticsearchConverter.afterPropertiesSet(); sarahConnor = new Person();