OSGi
Plus d'infos
- Type
- Système de modules pour Java
- Sortie
- 1999
- Propriétaire
- Eclipse Foundation (auparavant l'OSGi Alliance)
- Successeur
- JPMS (Java 9)
Des modules dynamiques pour Java, avec dépendances versionnées et la possibilité de remplacer du code sans arrêter le processus.
Tout commence en 1999 sous le nom d'« Open Services Gateway initiative », visant la domotique et les décodeurs — une ambition que l'organisation a fini par abandonner discrètement. L'unité est le bundle : un JAR accompagné d'un manifeste qui dit exactement quels paquetages il exporte et quelles plages de versions il importe. Le runtime donne à chaque bundle son propre chargeur de classes, ce qui règle le problème de deux versions d'une même bibliothèque dans un même processus.
Le prix à payer est la complexité. Eclipse repose sur l'implémentation OSGi Equinox depuis sa version 3.0, en 2004, et Apache Karaf comme Liferay en dépendent encore. Pour les nouveaux systèmes, l'idée a de fait perdu : Java 9 a apporté JPMS en 2017, et la plupart des équipes ont conclu qu'un conteneur par service isole plus simplement qu'un système de modules à l'intérieur de la JVM.