Java · Fiche 02
Migration Java
Stratégies, outils et bonnes pratiques pour migrer une application entre versions de Java.
Stratégies et bonnes pratiques pour migrer entre versions de Java.
🎯 Stratégie de migration
Une migration réussie se déroule en trois phases :
- Analyse — audit du code existant : dépendances, APIs dépréciées.
- Planification — roadmap de migration : étapes, timeline, risques.
- Exécution — migration progressive : tests, validation, déploiement.
🔧 Outils de migration
Outils d’analyse
- jdeps — analyse des dépendances
- jdeprscan — APIs dépréciées
- Eclipse Migration Toolkit
- OpenRewrite — refactoring automatisé
Commandes utiles
# Analyser les dépendances
jdeps --list-deps myapp.jar
# Détecter les APIs dépréciées
jdeprscan --for-removal myapp.jar
# Vérifier la compatibilité modules
jdeps --check-modules myapp.jar
⚠️ Problèmes courants et solutions
Modules Java EE supprimés (Java 11+)
javax.xml.bind, javax.activation, etc. ne font plus partie du JDK.
<!-- Solution : Ajouter les dépendances explicitement -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.1</version>
</dependency>
Reflection et modules
L’accès aux classes internes du JDK est restreint par le système de modules.
# Solution : Utiliser --add-opens
java --add-opens java.base/java.lang=ALL-UNNAMED MyApp
Ou dans module-info.java :
opens com.mypackage to com.framework;
Changements de GC
G1GC est le garbage collector par défaut depuis Java 9.
# Revenir à l'ancien GC si nécessaire
java -XX:+UseParallelGC MyApp
# Ou utiliser les nouveaux GC
java -XX:+UseZGC MyApp # Java 11+
java -XX:+UseShenandoahGC MyApp # OpenJDK
✅ Checklist de migration
Avant la migration
- Audit complet du code
- Tests de régression complets
- Backup de l’environnement
- Plan de rollback
Après la migration
- Tests de performance
- Monitoring renforcé
- Documentation mise à jour
- Formation des équipes
Interro écrite
7 questions pour valider la fiche. Une seule réponse par question.
/7