En 2009, la mort du classpath a été annoncée. Les classloaders à plat ou hiérarchiques devaient être remplacés par des systèmes modulaires et tous nos problèmes de dépendance devaient se résoudre d’eux-mêmes. Cinq ans plus tard, le classpath vit toujours et pour quelques temps encore.
Dans la première partie de cette session, je vous propose de revenir sur le fonctionnement des classloaders du JDK et les problèmes infernaux posés par le classpath. Nous verrons aussi comment les serveurs d’applications, comme Tomcat, gèrent leur classloaders de façon hiérarchique, afin d’isoler les applications entre elles.
Dans la deuxième partie, je parlerai de modularité et de son impact sur la gestion des dépendances, à l’exécution des applications. Des solutions existent déjà, comme OSGi, d’autres émergent, comme JBoss Modules. Je vous montrerai comment ce dernier fonctionne, dans WildFly ou en autonome.
82. Jigsaw
JEP 200: The Modular JDK
JEP 201: Modular Source Code
JEP 220: The Modular Run-Time Images
JEP xxx: The JDK Module System
JSR 376:
Java Platform Module System
85. J'imagine qu'il est tentant,
si le seul outil que vous avez est un marteau,
de traiter tout problème comme si c'était un clou.
Abraham MaslowPaul Watzlawick