7.8 KiB
Prochaines Étapes - Après Migration des Beans JSF
✅ État actuel (17 janvier 2025)
Migration Backend - TERMINÉE ✅
- ✅ Tous les repositories utilisent
BaseRepository<Entity>avec UUID - ✅ Toutes les entités utilisent
BaseEntityavec UUID - ✅ Tous les services utilisent UUID
- ✅ Tous les endpoints REST utilisent UUID
- ✅ Migration Flyway créée (
V1.3__Convert_Ids_To_UUID.sql)
Migration Client - TERMINÉE ✅
- ✅ Services client (
MembreService,AssociationService) - UUID - ✅ DTOs principaux (
MembreDTO,AssociationDTO,SouscriptionDTO,FormulaireDTO) - UUID - ✅
LoginResponseet classes internes - UUID - ✅
UserSessionet classes internes - UUID - ✅
AuthenticationService- UUIDs fixes pour démo - ✅ Tous les Beans JSF - UUID (14 fichiers mis à jour)
📋 Prochaines étapes prioritaires
1. Tester la migration Flyway 🧪 PRIORITÉ HAUTE
Action requise : Exécuter la migration V1.3__Convert_Ids_To_UUID.sql sur une base de données de test.
Étapes :
- Créer une base de données de test PostgreSQL
- Exécuter les migrations Flyway jusqu'à V1.2
- Insérer des données de test avec des IDs Long (si migration de données existantes)
- Exécuter la migration V1.3
- Vérifier que :
- Toutes les colonnes
idsont de type UUID - Toutes les clés étrangères sont mises à jour
- Les données sont préservées (si migration de données)
- Les index fonctionnent correctement
- Les contraintes UNIQUE sont préservées
- Toutes les colonnes
Commandes de test :
# Avec Quarkus en mode dev (exécute automatiquement Flyway)
cd unionflow-server-impl-quarkus
mvn quarkus:dev
# Ou exécuter Flyway manuellement
mvn flyway:migrate
# Vérifier l'état des migrations
mvn flyway:info
Points critiques à vérifier :
- ✅ Conversion des colonnes
iddeBIGINTversUUID - ✅ Mise à jour des clés étrangères
- ✅ Préservation des contraintes UNIQUE
- ✅ Mise à jour des index
- ✅ Performance des requêtes avec UUID
2. Exécuter les tests complets ✅ PRIORITÉ HAUTE
Action requise : Lancer tous les tests pour valider la migration.
Commandes :
# Compiler et tester tout le projet
mvn clean test
# Tests avec couverture de code
mvn clean test jacoco:report
# Tests d'intégration complets
mvn verify
# Tests pour un module spécifique
mvn test -pl unionflow-server-impl-quarkus
mvn test -pl unionflow-server-api
Points à vérifier :
- ✅ Tous les tests unitaires passent
- ✅ Tous les tests d'intégration passent
- ✅ Aucune erreur de compilation
- ✅ Couverture de code maintenue (≥ 80%)
- ✅ Tests de régression passent
Fichiers de tests à vérifier :
- Tests des repositories (requêtes avec UUID)
- Tests des services (conversion DTO ↔ Entity)
- Tests des endpoints REST (paramètres UUID)
- Tests des Beans JSF (si existants)
3. Mettre à jour la documentation OpenAPI/Swagger 📚 PRIORITÉ MOYENNE
Action requise : Vérifier que la documentation OpenAPI reflète l'utilisation d'UUID.
Vérifications :
- Les schémas de DTOs utilisent
type: string, format: uuid - Les exemples dans la documentation utilisent des UUIDs valides
- Les paramètres de chemin utilisent UUID
- Les réponses JSON montrent des UUIDs dans les exemples
Accès :
- Swagger UI :
http://localhost:8080/q/swagger-ui - OpenAPI JSON :
http://localhost:8080/q/openapi
Actions :
- Démarrer l'application en mode dev
- Accéder à Swagger UI
- Vérifier chaque endpoint :
- Paramètres de chemin (
@PathParam) utilisent UUID - Paramètres de requête (
@QueryParam) utilisent UUID - Corps de requête (DTOs) utilisent UUID
- Réponses (DTOs) utilisent UUID
- Paramètres de chemin (
- Tester quelques endpoints directement depuis Swagger UI
4. Vérifier et nettoyer IdConverter 🗑️ PRIORITÉ BASSE
Action requise : Vérifier si IdConverter est encore utilisé, puis le supprimer si non utilisé.
Vérification :
# Rechercher les utilisations
grep -r "IdConverter" unionflow/
Si non utilisé :
- Supprimer
IdConverter.java - Mettre à jour la documentation
- Supprimer les références dans les commentaires
Si encore utilisé :
- Documenter les cas d'usage
- Prévoir une migration future
- Marquer comme
@Deprecatedavec documentation
5. Surveiller les performances 📊 PRIORITÉ BASSE
Action requise : Surveiller les performances des requêtes avec UUID.
Points à surveiller :
- Temps de réponse des requêtes par ID
- Performance des index UUID
- Taille des index (UUID = 16 bytes vs Long = 8 bytes)
- Temps d'insertion avec UUID
- Impact sur les jointures
Outils :
- Logs de requêtes Hibernate (
quarkus.hibernate.orm.log.sql=true) - Métriques Quarkus (
/q/metrics) - Profiling avec JProfiler ou VisualVM
- Monitoring PostgreSQL (pg_stat_statements)
Métriques à surveiller :
- Temps moyen de requête par ID
- Nombre de requêtes par seconde
- Utilisation mémoire
- Taille de la base de données
6. Mettre à jour la documentation de migration 📝 PRIORITÉ BASSE
Action requise : Finaliser la documentation de migration.
Fichiers à mettre à jour :
MIGRATION_UUID.md- Marquer comme terminéMIGRATION_UUID_CLIENT.md- Marquer comme terminéRESUME_MIGRATION_UUID.md- Mettre à jour le statutPROCHAINES_ETAPES.md- Marquer les Beans JSF comme terminés
Contenu à ajouter :
- Résumé des fichiers modifiés
- Statistiques de migration
- Notes sur les UUIDs fixes utilisés
- Guide de dépannage
🎯 Checklist finale
Avant de considérer la migration comme 100% terminée :
- Tous les Beans JSF migrés vers UUID
- DTOs client migrés vers UUID
- Services client migrés vers UUID
- Migration Flyway testée sur base de test
- Tous les tests passent
- Documentation OpenAPI vérifiée
- IdConverter vérifié/supprimé
- Performance validée
- Documentation de migration complète
📊 Statistiques de migration
Backend
- Fichiers modifiés : ~20 fichiers
- Entités migrées : 6 entités (Membre, Organisation, Cotisation, Evenement, DemandeAide, InscriptionEvenement)
- Repositories migrés : 6 repositories
- Services migrés : 4 services
- Endpoints REST migrés : Tous les endpoints
Client
- Beans JSF migrés : 14 fichiers
- DTOs migrés : 4 fichiers (MembreDTO, AssociationDTO, SouscriptionDTO, FormulaireDTO)
- Services migrés : 2 fichiers (MembreService, AssociationService)
- Classes internes migrées : ~30 classes internes
🔍 Vérifications effectuées
- ✅ Compilation backend : SUCCÈS
- ✅ Compilation client : SUCCÈS
- ✅ Aucune occurrence de
Long iddans les Beans JSF - ✅ Tous les DTOs utilisent UUID
- ✅ Tous les services utilisent UUID
📚 Documentation créée
- MIGRATION_UUID.md - Documentation complète backend
- MIGRATION_UUID_CLIENT.md - Guide migration client
- RESUME_MIGRATION_UUID.md - Résumé global
- PROCHAINES_ETAPES.md - Étapes précédentes
- PROCHAINES_ETAPES_APRES_BEANS.md - Ce document
✨ Conclusion
La migration UUID est quasi-complète (≈95%). Il reste principalement à :
- Tester la migration Flyway (critique avant déploiement)
- Valider avec les tests complets (critique pour la qualité)
- Vérifier la documentation OpenAPI (amélioration)
Date : 17 janvier 2025
Version : 2.0
Statut : 🟢 Backend terminé | 🟢 Client terminé | 🟡 Tests et validation en cours
🚀 Actions immédiates recommandées
- Tester la migration Flyway sur une base de test
- Exécuter tous les tests pour valider la migration
- Vérifier Swagger UI pour confirmer l'utilisation d'UUID dans la documentation
Une fois ces étapes terminées, la migration UUID sera 100% complète et prête pour le déploiement.