Skip to content

Commit 6765679

Browse files
pjmeisch-ccxhaggi
authored andcommitted
DATAES-561 - Reuse ObjectMapper in ElasticsearchEntityMapper
Original pull request: spring-projects#269
1 parent dff7d4e commit 6765679

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchEntityMapper.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package org.springframework.data.elasticsearch.core;
1717

18+
import com.fasterxml.jackson.databind.ObjectReader;
19+
import com.fasterxml.jackson.databind.ObjectWriter;
1820
import lombok.RequiredArgsConstructor;
1921

2022
import java.io.IOException;
@@ -56,6 +58,7 @@
5658
* {@link ElasticsearchPersistentEntity metadata}.
5759
*
5860
* @author Christoph Strobl
61+
* @author Peter-Josef Meisch
5962
* @since 3.2
6063
*/
6164
public class ElasticsearchEntityMapper implements
@@ -65,6 +68,8 @@ public class ElasticsearchEntityMapper implements
6568

6669
private final MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext;
6770
private final GenericConversionService conversionService;
71+
private final ObjectReader objectReader;
72+
private final ObjectWriter objectWriter;
6873

6974
private CustomConversions conversions = new ElasticsearchCustomConversions(Collections.emptyList());
7075
private EntityInstantiators instantiators = new EntityInstantiators();
@@ -78,6 +83,10 @@ public ElasticsearchEntityMapper(
7883
this.mappingContext = mappingContext;
7984
this.conversionService = conversionService != null ? conversionService : new DefaultConversionService();
8085
this.typeMapper = ElasticsearchTypeMapper.create(mappingContext);
86+
87+
ObjectMapper objectMapper = new ObjectMapper();
88+
objectReader = objectMapper.readerFor(HashMap.class);
89+
objectWriter = objectMapper.writer();
8190
}
8291

8392
// --> GETTERS / SETTERS
@@ -543,12 +552,12 @@ public String mapToString(Object source) throws IOException {
543552
Map<String, Object> sink = new LinkedHashMap<>();
544553
write(source, sink);
545554

546-
return new ObjectMapper().writeValueAsString(sink);
555+
return objectWriter.writeValueAsString(sink);
547556
}
548557

549558
@Override
550559
public <T> T mapToObject(String source, Class<T> clazz) throws IOException {
551-
return read(clazz, new ObjectMapper().readerFor(HashMap.class).readValue(source));
560+
return read(clazz, objectReader.readValue(source));
552561
}
553562

554563
// --> PRIVATE HELPERS

0 commit comments

Comments
 (0)