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
66 files
+ 2524
639
Compare changes
  • Side-by-side
  • Inline
Files
66
@@ -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);