This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects

Resolve "Die Statistiken sollten auch in ElasticSearch hinterlegt werden."

Compare and Show latest version
10 files
+ 588
145
Compare changes
  • Side-by-side
  • Inline
Files
10
@@ -4,8 +4,10 @@ import co.elastic.clients.elasticsearch.ElasticsearchClient;
import co.elastic.clients.json.jackson.JacksonJsonpMapper;
import co.elastic.clients.transport.ElasticsearchTransport;
import co.elastic.clients.transport.rest_client.RestClientTransport;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import java.io.IOException;
import java.net.MalformedURLException;
@@ -148,12 +150,26 @@ public class ElasticsearchConfiguration extends ElasticsearchConfigurationSuppor
}
}
public static class InstantTimeConverter extends com.fasterxml.jackson.databind.JsonSerializer<Instant> {
@SuppressWarnings("unused")
private final Logger log = LogManager.getLogger(MoreRobustLocalDateTimeConverter.class);
@Override
public void serialize(Instant value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
String s = value.toString();
gen.writeString(s);
}
}
@Bean
public ElasticsearchClient getElasticsearchAPIClient() throws MalformedURLException {
// Create the transport with a Jackson mapper
final JacksonJsonpMapper mapper = new JacksonJsonpMapper();
final JavaTimeModule timeModule = new JavaTimeModule();
timeModule.addDeserializer(LocalDateTime.class, new ElasticsearchConfiguration.MoreRobustLocalDateTimeConverter());
timeModule.addSerializer(Instant.class, new ElasticsearchConfiguration.InstantTimeConverter());
mapper.objectMapper().registerModule(timeModule);
mapper.objectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);