akka/akka-http

Jackson Marshallers / Unmarshallers should be configurable / use akka.serialization.jackson.JacksonObjectMapperProvider

Open

#3 379 ouverte le 20 juil. 2020

Voir sur GitHub
 (1 commentaire) (2 réactions) (0 assignés)Scala (598 forks)batch import
1 - triagedhelp wantedt:marshalling

Métriques du dépôt

Stars
 (1 311 stars)
Métriques de merge PR
 (Merge moyen 1h 17m) (1 PR mergée en 30 j)

Description

Currently the Jackson ObjectMapper in the akka.http.javadsl.marshallers.jackson.Jackson class creates a default object mapper which is not configurable. The only way to override its behaviour is by supplying a custom ObjectMapper everytime the marshaller/unmarshaller is used.

Akka already provides a way to customise Jackson configuration + retrieving a ObjectMapper through akka.serialization.jackson.JacksonObjectMapperProvider and the

akka.serialization.jackson {
    jackson-modules += "com.acme.MyJacksonModule"
}

configuration. The marshallers/unmarshallers should honour this configuration way. Ideally, we'd have a built-in

  public static Route extractObjectMapper(Function<ObjectMapper, Route> inner) {
    return extractActorSystem(sys -> {
      ObjectMapper objectMapper = JacksonObjectMapperProvider
          .get(sys)
          .getOrCreate("akka-http",
          Optional.empty());
      return provide(objectMapper, inner);
    });
  }

or similar.

Guide contributeur