En développant vos plug-ins, vous avez peut-être un jour été confronté à une erreur, à première vue obscure, due à une directive singleton soit disant manquante…
En effet, le PDE lève une erreur lorsqu’un plug-in qui n’est pas “singleton” souhaite définir des extensions ou des points d’extension.
Pourquoi, et qu’est-ce au juste que cette directive ?
|
Bundle-SymbolicName: com.acme.module.test; singleton:=true |
Dans la norme OSGi, il est indiqué que “singleton” (renseigné dans l’entrée de MANIFEST Bundle-SymbolicName) doit être placé à true lorsque l’on souhaite interdire la résolution par le framework de plusieurs versions d’un même bundle.
C’est donc tout à fait logique qu’un plug-in amenant des extensions ou des points d’extension soit impérativement un singleton ; car il serait sans cela très difficile, voire impossible, de gérer les différentes versions résolues au runtime…
Imaginez simplement un plug-in amenant une vue, que l’on pourrait déployer dans deux, trois, … versions différentes au sein du même Eclipse : à quoi devrait-on s’attendre lors de l’affichage du menu “Show View > Other…” ???
Dans le cas où on écrit un plug-in n’amenant ni extension ni point d’extension —un plug-in de librairies, par exemple—, on sera en revanche ravi de pouvoir dire que ce n’est pas un singleton (c’est le comportement par défaut), et ainsi faire coexister différentes versions de nos librairies dans le même Eclipse. C’est d’ailleurs exactement ce qui se passe avec les plug-ins ICU, Ant ou log4j, dont les utilisateurs viennent dépendre en venant préciser le numéro (ou l’intervalle) de version qui les intéresse…
Neil Bartlett, expert et évangéliste de la technologie OSGi (voir notamment ses excellents articles “Getting started with OSGi” sur EclipseZone), vient d’entamer l’écriture d’un livre intitulé “OSGi in practice“.
Ce dernier sera disponible sous licence Creative Commons, et le premier chapitre est d’ores et déjà téléchargeable ici.
Si tout va bien, trois chapitres supplémentaires devraient être disponibles dans le courant de cette semaine ; Neil Bartlett encourageant ses lecteurs à contribuer activement à l’ouvrage, en le relisant ou bien en proposant du contenu.
Même si ce ne sont que 25 pages pour l’instant, le style de l’auteur est très agréable, les exemples clairs, et il y a même quelques exercices de mise en pratique à la fin du chapitre !
Ce flux RSS vous permettra d’être tenus au courant dès qu’un nouveau chapitre sera disponible.