Le dernier compilateur Avro (1.8.2) génère des sources Java pour les dates types logiques avec des implémentations basées sur Joda-Time. Comment puis-je configurer le compilateur Avro pour produire des sources utilisant l'API de date-heure Java 8?

18
injecto 16 août 2017 à 14:22

2 réponses

Meilleure réponse

Actuellement (avro 1.8.2) ce n'est pas possible. Il est codé en dur pour générer des classes de date / heure Joda.

La branche actuelle master est passée à Java 8 et il y a un problème ouvert (avec Pull Request) pour ajouter la possibilité de générer des classes avec {{X1} } les types.

Je n'ai aucune idée du calendrier de sortie de ce qui se trouve actuellement dans master malheureusement. Si vous vous sentez aventureux, vous pouvez appliquer le patch à 1.8.2, car en théorie tout devrait être compatible. Les types de base sous-jacents lors de la sérialisation / désérialisation sont toujours des entiers et des longs.

14
Auke 2 oct. 2017 à 14:32

Avec avro 1.9.2, vous pouvez utiliser par ex. date du LocalDate:

    {
      "name": "Transaction",
      "type": "record",
      "fields": [
        {
          "name": "time",
          "type": {
            "type": "int",
            "logicalType": "date"
          }
        },

Voir Types logiques pour les autres types.

1
adrhc 17 avril 2020 à 11:13