Préparez une migration de Java 11 vers Java 17 et modernisez le code là où cela améliore sa lisibilité. Le fil rouge couvre compatibilité, nouvelles constructions du langage, tests et procédure de basculement.
Développeurs Java et responsables techniques préparant une migration d’un projet Java 11 vers Java 17.
Prérequis
Cette formation présente les nouveautés de Java 11 et Java 17 pour un profil maîtrisant déjà le langage Java. Pour suivre cette formation, il est donc indispensable de bien connaître la version Java 8.
Des compétences à mettre en pratique
Objectifs pédagogiques
Connaitre les nouveautés apportées par les versions de Java 9 et ultérieures.
Connaître, version après version, les nouveautés apportées aux dernières versions LTS de Java
Mettre en pratique les nouveautés significatives et les plus importantes
Votre progression, jour après jour
Programme détaillé
6 séquences · 21 heures indicatives · ateliers et évaluation
Migrer une application Java 11 vers Java 17 en distinguant nouveautés disponibles, fonctionnalités preview et problèmes de compatibilité.
Préparer votre formation et découvrir la méthode
Préparer la formation
Java 11, compilation et tests ; JDK 11 et 17 isolés, Maven ou Gradle, application de migration préparée.
Apports illustrés, exercices progressifs, ateliers sur un cas fil rouge et retour argumenté sur les productions. Les ateliers et l'évaluation font partie des heures indiquées.
Jour 01Établir le diagnostic de migration7 h · 2 séquences avec mise en pratique
Séquence 1 · 3 h 30
Établir le diagnostic de migration
Inventorier dépendances, plugins et options JVM.
Situer les changements de Java 9 à 11 utiles au contexte.
Identifier usages internes et composants à mettre à jour.
Analyser les dépendances avec les outils du JDK, repérer modules et accès internes, puis distinguer incompatibilité de compilation et d’exécution.
Notions et méthodes en détail
Inventorier JDK, dépendances, plugins de build et options JVM du projet de référence.
Séparer compatibilité source, binaire et comportement à l’exécution.
Repérer utilisation d’API internes et accès réflexifs affectés par l’encapsulation renforcée.
Atelier prévuConstruire une matrice de compatibilité du projet et obtenir une exécution de référence sous Java 11.
Livrable attenduMatrice de compatibilité et risques de migration.
Vérification en atelierLe diagnostic produit une liste d’écarts reproductibles et non une simple montée de version.
Pour aller plus loin
Identifier une bibliothèque incompatible avec l’encapsulation renforcée.
Séquence 2 · 3 h 30
Moderniser les expressions et le texte
Employer expressions switch et vérifier l'exhaustivité.
Utiliser blocs de texte avec maîtrise des espaces et retours.
Revoir APIs de chaînes et pratiques de code compatibles Java 17.
Employer expressions switch et blocs de texte en préservant lisibilité et comportement.
Notions et méthodes en détail
Utiliser expressions switch avec valeurs de retour et branches exhaustives adaptées au cas.
Employer text blocks en vérifiant indentation et contenu réel de la chaîne.
Comparer avant/après sur lisibilité et couverture des branches.
Atelier prévuRefactorer un parseur et ses chaînes multilignes en comparant les sorties avant et après modification.
Livrable attenduExemples modernisés et tests de non-régression.
Vérification en atelierLa modernisation conserve les valeurs exactes et tous les cas métier testés.
Pour aller plus loin
Réécrire un traitement avec tests sur valeurs nulles et cas limites.
Jour 02Modéliser avec records et types scellés7 h · 2 séquences avec mise en pratique
Séquence 3 · 3 h 30
Modéliser avec records et types scellés
Comprendre composants, égalité et immutabilité limitée des records.
Encadrer une hiérarchie avec sealed et permits.
Distinguer nouveauté stable et fonctionnalité encore en preview dans Java 17.
Utiliser records pour données et types scellés pour hiérarchies contrôlées ; expliciter leurs limites.
Notions et méthodes en détail
Définir un record pour une donnée immutable dans sa structure et examiner la mutabilité de ses composants.
Construire une hiérarchie sealed avec sous-types autorisés et responsabilités cohérentes.
Distinguer objet de données et entité à identité ou cycle de vie mutable.
Atelier prévuRemplacer un DTO par un record et modéliser un résultat de traitement avec une hiérarchie fermée.
Livrable attenduModèle de types et invariants vérifiés.
Vérification en atelierLe choix du record ou du type scellé répond au modèle du domaine.
Pour aller plus loin
Comparer record immuable en surface et objet contenant une collection mutable.
Séquence 4 · 3 h 30
Adapter les usages du langage et des bibliothèques
Utiliser le pattern matching pour instanceof.
Examiner APIs supprimées, dépréciées et encapsulation renforcée.
Ajuster réflexion, bibliothèques et configuration modulaire si nécessaire.
Distinguer fonctionnalités finalisées et options preview ; vérifier les changements d’API utilisés.
Notions et méthodes en détail
Utiliser pattern matching pour instanceof sans mélanger fonctionnalités de préversion et fonctionnalités finalisées.
Vérifier les changements de bibliothèques réellement utilisés par le projet.
Retirer contournements devenus inutiles après validation de la compatibilité.
Atelier prévuDiagnostiquer un accès réflexif cassé et choisir une correction de dépendance plutôt qu'une option de contournement permanente.
Livrable attenduListe des adaptations et décisions de compatibilité.
Vérification en atelierLe code cible compile avec la version annoncée sans activer de préversion non prévue.
Pour aller plus loin
Remplacer un accès réflexif fragile par une API prise en charge.
Jour 03Valider runtime et performances7 h · 2 séquences avec mise en pratique
Séquence 5 · 3 h 30
Valider runtime et performances
Rejouer tests unitaires et intégration sous Java 17.
Mesurer démarrage, mémoire et temps de traitement sur charge identique.
Examiner logs et options de collecte mémoire effectivement utilisées.
Mesurer démarrage, allocation, GC et débit avec charge représentative et warm-up.
Notions et méthodes en détail
Comparer démarrage, mémoire et latence avec charge et configuration documentées.
Examiner logs JVM et comportement du ramasse-miettes avant de modifier les options.
Exécuter tests unitaires, intégration et parcours sensibles sur les deux environnements.
Atelier prévuComparer les deux runtimes avec protocole stable et analyser une régression observée sur l'application de démonstration.
Livrable attenduRapport de performance reproductible.
Vérification en atelierUn écart de mesure est analysé avant d’être attribué à la nouvelle version du JDK.
Pour aller plus loin
Expliquer une variation de latence sans l’attribuer automatiquement à la version Java.
Séquence 6 · 3 h 30
Préparer le basculement
Construire un artefact reproductible avec le JDK cible.
Mettre à jour CI, images et documentation de support.
Prévoir validation, surveillance et retour à la version précédente.
Prévoir CI sur Java 17, packaging, déploiement progressif et procédure de retour arrière.
Notions et méthodes en détail
Préparer image d’exécution, chaîne CI et documentation des versions supportées.
Définir critères de bascule et procédure de retour à l’environnement précédent.
Recetter erreurs, encodage et intégrations externes à partir du dossier de migration.
Atelier prévuPrésenter un dossier de migration avec modifications, tests, dépendances et procédure de retour arrière.
Livrable attenduPlan de bascule et critères de validation.
Vérification en atelierLe dossier comporte une preuve de build, de recette et de retour arrière.
Pour aller plus loin
Simuler un échec de production malgré des tests unitaires réussis.
Mettre vos acquis à l’épreuve
Évaluation finale prévue
Mise en situation individuelle et restitution commentée, incluses dans la dernière séquence. Durée indicative : 60 minutes.
Critères de réussite
Les fonctionnalités utilisées sont disponibles dans Java 17 avec leur statut exact.
L'application conserve son comportement testé.
Les différences de performance sont mesurées et contextualisées.
Adaptation et validation pédagogique. Version enrichie proposée, à valider par le formateur. Répartition pédagogique proposée sur une base de 7 heures par jour, pauses exclues. À ajuster avec le formateur au positionnement initial. Les approfondissements « Pour aller plus loin » sont sélectionnés par le formateur selon le positionnement et le temps disponible ; ils ne constituent pas des heures supplémentaires garanties.
Les ateliers décrivent les travaux prévus. Leurs fichiers, corrigés et évaluations en ligne sont à préparer, sauf ressources explicitement disponibles dans le module pilote.
Références pour approfondir
Documentation des organismes et éditeurs. La progression et les ateliers sont une rédaction originale pour Beyond Expertise.
Le centre doit confirmer les prérequis, le programme final, les dates, les horaires et le tarif avant inscription. Le délai d’accès dépend des disponibilités et du besoin. L’ouverture d’une session et la disponibilité d’un cours e-learning sont confirmées avant inscription.
Les ateliers, méthodes et évaluations du programme sont proposés pour validation pédagogique. Les supports effectivement disponibles sont indiqués dans la section « Contenu e-learning ».
Le parcours ne délivre pas de diplôme ni de certification professionnelle. Aucune éligibilité CPF ou prise en charge n’est garantie. Toute préparation à un examen externe devra faire l’objet d’informations et d’habilitations vérifiées.
Les objectifs et prérequis sont disponibles. Les leçons, supports et évaluations de ce parcours ne sont pas encore intégrés dans cet espace. Le programme détaillé ci-dessus décrit les apprentissages et les ateliers prévus.
Origine des informations et statut du programme
Durée, niveau, modalités, objectifs et tarif relevés sur le site officiel le 11 septembre 2026. Le déroulé détaillé a été enrichi par Beyond Expertise. Validation pédagogique du formateur à réaliser avant animation.