Skip to content

refactor: migrate EcoleDirecte JSON models from POJOs to Java records#3

Open
mdeverdelhan wants to merge 1 commit intomasterfrom
codex/refactor-pojos-to-use-records
Open

refactor: migrate EcoleDirecte JSON models from POJOs to Java records#3
mdeverdelhan wants to merge 1 commit intomasterfrom
codex/refactor-pojos-to-use-records

Conversation

@mdeverdelhan
Copy link
Copy Markdown
Owner

Motivation

  • Moderniser les DTO JSON pour tirer parti de Java 21 et améliorer la lisibilité en remplaçant les POJO Lombok par des record immuables.
  • Réduire le code boilerplate présent dans les modèles mappés par Gson et clarifier les accès aux champs via les accesseurs natifs des records.
  • Éviter les mutations post-désérialisation (champ rawData avec setter) en fournissant une solution immuable garantissant que les données brutes sont toujours disponibles.

Description

  • Migration des principaux types de données JSON vers des record Java dans le package eu.verdelhan.ecoledirecte.v3.* (environ 54 fichiers modifiés), incluant Login, Notes, Eleve, Documents, etc.
  • Transformation de EcoleDirecteApiResponse<T> en record en ajoutant rawData comme composant du record et suppression du setter mutable existant.
  • Adaptation de EcoleDirecteClient pour utiliser les accesseurs de records (xxx()) à la place des getXxx() Lombok, et remplacement du comportement de setRawData(...) par une reconstruction immuable d'une nouvelle EcoleDirecteApiResponse contenant rawData lors du parsing (parseResponse).
  • Conversion de quelques petits types utilitaires (ex : GtkCookies, DoubleAuthCnCv, DoubleAuthQuestion) en record et suppression des annotations Lombok inutiles.

Testing

  • Lancement automatique des tests via mvn test -q a été tenté mais a échoué pour des raisons d'environnement externes, la résolution d'un plugin Maven a retourné 403 Forbidden lors du téléchargement depuis Maven Central, empêchant l'exécution des tests unitaires.
  • Aucune autre exécution automatisée n'a été possible dans cet environnement, compilation et exécution des tests doivent être validées localement ou dans CI avec accès réseau complet vers Maven Central (pom contient gson:2.13.2 et cible Java 21, versions compatibles avec les records).

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant