197 lines
6.4 KiB
Markdown
197 lines
6.4 KiB
Markdown
# Prochaines Étapes - Migration UUID UnionFlow
|
|
|
|
## ✅ État actuel
|
|
|
|
### Migration Backend - **TERMINÉE** ✅
|
|
- Tous les repositories utilisent `BaseRepository<Entity>` avec UUID
|
|
- Toutes les entités utilisent `BaseEntity` avec 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
|
|
- ✅ `LoginResponse` et classes internes - UUID
|
|
- ✅ `UserSession` et classes internes - UUID
|
|
- ✅ `AuthenticationService` - UUIDs fixes pour démo
|
|
- ✅ **Tous les Beans JSF** (14 fichiers) - UUID
|
|
|
|
## 📋 Prochaines étapes prioritaires
|
|
|
|
### ✅ Nettoyage du code source - **TERMINÉ** ✅
|
|
- ✅ Suppression des données mockées dans tous les Beans JSF principaux
|
|
- ✅ Suppression des TODOs dans NotificationService et DashboardServiceImpl
|
|
- ✅ Remplacement de System.out.println par LOGGER dans ConfigurationBean
|
|
- ✅ Migration de RapportsBean et DocumentsBean vers API réelles
|
|
- ✅ Correction du path AnalyticsService pour correspondre au backend
|
|
- ✅ Remplacement de tous les System.out.println restants par LOGGER
|
|
- ✅ Nettoyage de tous les TODOs restants (NotificationService, MembreListeBean, MembreInscriptionBean)
|
|
- ✅ Implémentation du téléchargement Excel dans MembreListeBean
|
|
|
|
### 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 PostgreSQL.
|
|
|
|
**Étapes** :
|
|
1. Créer une base de données de test
|
|
2. Exécuter les migrations Flyway jusqu'à V1.2
|
|
3. Insérer des données de test avec des IDs Long
|
|
4. Exécuter la migration V1.3
|
|
5. Vérifier que :
|
|
- Toutes les colonnes `id` sont 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
|
|
|
|
**Commande de test** :
|
|
```bash
|
|
# Avec Quarkus en mode dev
|
|
mvn quarkus:dev
|
|
|
|
# Ou exécuter Flyway manuellement
|
|
mvn flyway:migrate
|
|
```
|
|
|
|
### 2. Exécuter les tests complets ✅ **PRIORITÉ HAUTE**
|
|
|
|
**Action requise** : Lancer tous les tests unitaires et d'intégration pour valider la migration UUID.
|
|
|
|
**Commandes** :
|
|
```bash
|
|
# Compiler et tester
|
|
mvn clean test
|
|
|
|
# Tests avec couverture
|
|
mvn clean test jacoco:report
|
|
|
|
# Tests d'intégration
|
|
mvn verify
|
|
```
|
|
|
|
**Points à vérifier** :
|
|
- ✅ Tous les tests unitaires passent
|
|
- ✅ Tous les tests d'intégration passent
|
|
- ✅ Aucune erreur de compilation
|
|
- ✅ Couverture de code maintenue
|
|
|
|
### 3. Mettre à jour la documentation OpenAPI/Swagger 📚 **PRIORITÉ MOYENNE**
|
|
|
|
**Action requise** : Vérifier que la documentation OpenAPI reflète l'utilisation d'UUID dans tous les schémas.
|
|
|
|
**Vérifications** :
|
|
- Les schémas de DTOs utilisent `type: string, format: uuid`
|
|
- Les exemples dans la documentation utilisent des UUIDs
|
|
- Les paramètres de chemin utilisent UUID
|
|
|
|
**Accès** : `http://localhost:8080/q/swagger-ui`
|
|
|
|
### 4. Vérifier et nettoyer IdConverter 🗑️ **PRIORITÉ BASSE**
|
|
|
|
**Action requise** : Vérifier si `IdConverter` est encore utilisé dans le code, puis le supprimer si obsolète.
|
|
|
|
**Vérification** :
|
|
```bash
|
|
# Rechercher les utilisations
|
|
grep -r "IdConverter" unionflow/
|
|
```
|
|
|
|
**Si non utilisé** :
|
|
- Supprimer `IdConverter.java`
|
|
- Mettre à jour la documentation
|
|
|
|
### 5. Surveiller les performances 📊 **PRIORITÉ BASSE**
|
|
|
|
**Action requise** : Surveiller les performances des requêtes avec UUID après déploiement.
|
|
|
|
**Vérification** :
|
|
```bash
|
|
# Rechercher les utilisations
|
|
grep -r "IdConverter" unionflow/
|
|
```
|
|
|
|
**Si non utilisé** :
|
|
- Supprimer `IdConverter.java`
|
|
- Mettre à jour la documentation
|
|
|
|
### 6. Mettre à jour la documentation de migration 📝 **PRIORITÉ BASSE**
|
|
|
|
**Action requise** : Finaliser la documentation complète de la migration UUID.
|
|
|
|
**Points à surveiller** :
|
|
- Temps de réponse des requêtes par ID
|
|
- Performance des index UUID
|
|
- Taille des index
|
|
- Temps d'insertion avec UUID
|
|
|
|
**Outils** :
|
|
- Logs de requêtes Hibernate
|
|
- Métriques Quarkus
|
|
- Profiling avec JProfiler ou VisualVM
|
|
|
|
## 📝 Notes importantes
|
|
|
|
### UUIDs fixes pour la démonstration
|
|
|
|
Pour maintenir la cohérence dans les données de démonstration, utilisez des UUIDs fixes :
|
|
|
|
```java
|
|
// UUIDs fixes pour démo
|
|
UUID.fromString("00000000-0000-0000-0000-000000000001") // Super Admin
|
|
UUID.fromString("00000000-0000-0000-0000-000000000002") // Admin
|
|
UUID.fromString("00000000-0000-0000-0000-000000000003") // Membre
|
|
UUID.fromString("00000000-0000-0000-0000-000000000010") // Organisation
|
|
```
|
|
|
|
### Conversion automatique JAX-RS
|
|
|
|
JAX-RS/MicroProfile REST Client convertit automatiquement les UUID en String dans les URLs. Aucune configuration supplémentaire n'est nécessaire.
|
|
|
|
### Validation UUID
|
|
|
|
Les UUIDs sont validés automatiquement par JAX-RS. Les UUIDs invalides génèrent une `400 Bad Request`.
|
|
|
|
## 🎯 Checklist finale
|
|
|
|
Avant de considérer la migration comme terminée :
|
|
|
|
- [x] Tous les Beans JSF migrés vers UUID
|
|
- [ ] Migration Flyway testée sur base de test
|
|
- [ ] Tous les tests passent
|
|
- [ ] Documentation OpenAPI mise à jour
|
|
- [x] DTOs client restants mis à jour
|
|
- [ ] IdConverter supprimé (si non utilisé)
|
|
- [ ] Performance validée
|
|
- [ ] Documentation de migration complète
|
|
|
|
## 📚 Documentation créée
|
|
|
|
1. **MIGRATION_UUID.md** - Documentation complète backend
|
|
2. **MIGRATION_UUID_CLIENT.md** - Guide migration client
|
|
3. **RESUME_MIGRATION_UUID.md** - Résumé global
|
|
4. **PROCHAINES_ETAPES.md** - Ce document
|
|
|
|
## ✨ Conclusion
|
|
|
|
La migration UUID est **quasi-complète**. Il reste principalement à :
|
|
1. ✅ **TERMINÉ** : Finaliser les Beans JSF
|
|
2. ⏳ **EN COURS** : Tester la migration Flyway
|
|
3. ⏳ **EN COURS** : Valider avec les tests complets
|
|
|
|
**Date** : 17 janvier 2025
|
|
**Version** : 2.1
|
|
**Statut** : 🟢 Backend terminé | 🟢 Client terminé | 🟡 Tests et validation en cours
|
|
|
|
## 📝 Note importante
|
|
|
|
**Les Beans JSF ont été migrés avec succès !** ✅
|
|
|
|
Tous les 14 Beans JSF ont été mis à jour pour utiliser UUID :
|
|
- DemandesBean, SuperAdminBean, MembreRechercheBean, MembreProfilBean
|
|
- EvenementsBean, EntitesGestionBean, DocumentsBean, DemandesAideBean
|
|
- CotisationsGestionBean, CotisationsBean, RapportsBean
|
|
- SouscriptionBean, FormulaireBean, AdminFormulaireBean
|
|
|
|
Voir **PROCHAINES_ETAPES_APRES_BEANS.md** pour les étapes suivantes.
|
|
|