Talk de Thomas Collignon et Alexis DMYTRYK de eFluid.
Abstract
Nous sommes passés de Java 8 à Java 11 sur un gros projet Java chez efluid en septembre 2018 juste au moment de la release de Java 11. Comment cela s’est-il passé? Où en sommes nous aujourd’hui? Quels problèmes avons nous eu? Nous passerons en revue les différents points d’attention importants pour une migration java 8 -> 11, et nous verrons en quoi cette migration peut être bénéfique pour vos projets. Sans oublier l’incontournable question “quel fournisseur de JDK choisir ?” C’est désormais un point à ne pas sous-estimer, surtout sur les projets longs termes.
Notes
EFluid : editeur logiciel domaine énergie
Reflexion :
- mise en place des modules
- N’est pas obligatoire
- N’est pas fin frein
- Supression d’API
- Code simple à traiter (Cf JDEPS)
- Dépendances non maintenues
- Process de validation d’ajout de dépendances`
- Patch de sécurité
- Bénéfices
- Nouveautés
- amélioration des nerfs
- Inconcénients de rester java 8
- Bq de gap pour la prochaine LTS
Comment faire ?
- formation équipe (pour java 8)
- Doc oracle pour bien faire la migration
- Choix de la distribution
- Oracle Open JDK (jdk.java.net)
- Les API sont identiques entre toutes les distributions
- Le contenu est-il identique ?
Upgrades à faire ?
- Maven 3.5.3
- Maven compiler plugin 3.8.0
- Remove calls to tools.jar
Problème
- plugin qui ne fonctionne pas sur java 11
- Accidoctor maven plugin 1.6.0
- Maven plugin plugin
- Probleme illegal accès groovy
- Jaxb sort du JDK
- Apache CXF n’est pas compatible
- Weblogic ne démarre pas
- Attention au dépendances exotiques
- Attendre que la JDK sortait et se stabilise
Migration
- Junit 4.12
- AssertJ 3.11.1
- Mockito 2.23
- PowerMock : Pas de version pour java 9-11 ==> supprimer
- Reflection —> remplacé par ClassGraph
- Import * ==> à éviter
- Build-helper-maven-plugin ==> n’est pas maintenu (séparer les tests d’intégration)
- Passage de version Sonar 7.4
- Tomcat 9
Eclipse :
- Plugin m2eclipse-webby
- Version 2018-12
- Lenteur indexation des fichiers
- Indexation bloquante
- Surcharge mémoire
- Plugin sonarlint ok
Préparation next LTS :
- Pas de split package
- Plus d’importance à la modularité
- Anticiper / préparation API avant la migration réelle
- Plugin maven detective
- Maven controle les dépendances
- Outil GraphViz pour voir les dépendances
- Passer d’eclipse à Intellij