• Home
  • About
    • Ahmed DAMMAK photo

      Ahmed DAMMAK

      Full Stack Developer

    • Learn More
    • Twitter
    • LinkedIn
    • Github
  • All Posts
  • All Tags
  • Projects

DevoxxFR 2019 - Java 8 to 11

18 Apr 2019

Reading time ~2 minutes

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


DevoxxFRconferencesJava