239 lines
7.8 KiB
Markdown
239 lines
7.8 KiB
Markdown
# 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 `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** - 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** :
|
|
1. Créer une base de données de test PostgreSQL
|
|
2. Exécuter les migrations Flyway jusqu'à V1.2
|
|
3. Insérer des données de test avec des IDs Long (si migration de données existantes)
|
|
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
|
|
- Les contraintes UNIQUE sont préservées
|
|
|
|
**Commandes de test** :
|
|
```bash
|
|
# 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 `id` de `BIGINT` vers `UUID`
|
|
- ✅ 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** :
|
|
```bash
|
|
# 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** :
|
|
1. Démarrer l'application en mode dev
|
|
2. Accéder à Swagger UI
|
|
3. 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
|
|
4. 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** :
|
|
```bash
|
|
# 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 `@Deprecated` avec 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 statut
|
|
- `PROCHAINES_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** :
|
|
|
|
- [x] Tous les Beans JSF migrés vers UUID
|
|
- [x] DTOs client migrés vers UUID
|
|
- [x] 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 id` dans les Beans JSF
|
|
- ✅ Tous les DTOs utilisent UUID
|
|
- ✅ Tous les services utilisent UUID
|
|
|
|
## 📚 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** - Étapes précédentes
|
|
5. **PROCHAINES_ETAPES_APRES_BEANS.md** - Ce document
|
|
|
|
## ✨ Conclusion
|
|
|
|
La migration UUID est **quasi-complète** (≈95%). Il reste principalement à :
|
|
|
|
1. **Tester la migration Flyway** (critique avant déploiement)
|
|
2. **Valider avec les tests complets** (critique pour la qualité)
|
|
3. **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
|
|
|
|
1. **Tester la migration Flyway** sur une base de test
|
|
2. **Exécuter tous les tests** pour valider la migration
|
|
3. **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.
|
|
|