Hier matin, je n'avais pas la moindre idée de ce qu'était OSGi. OSGi n'était qu'un mot à la mode qui revenait sans cesse, et j'ai fini par prendre le temps de m'y mettre.
En fait, cela semble plutôt cool, alors j'aimerais commencer par affirmer (pour le compte rendu) que je ne suis pas anti-OSGi à quelque égard que ce soit, et que ce n'est pas une question de "dénigrement de l'OSGi".
En fin de compte, il semble qu'OSGi ait - essentiellement - résolu les problèmes suivants JSR 277 sur la modularité de Java, qui a reconnu qu'il y a des lacunes dans le système de gestion de l'information. JAR
qui peut conduire à des problèmes de résolution d'espace de nom et de chargement de classe dans certains cas particuliers. OSGi fait également beaucoup d'autres choses vraiment cool, mais d'après ce que je peux vérifier, c'est son plus grand avantage (ou l'un d'entre eux).
Pour moi, en tant que développeur Java EE relativement récent (quelques années maintenant), il est absolument stupéfiant que nous soyons en 2011 et que nous vivions actuellement à l'ère de Java 7, et que ces problèmes de chargement de classe soient toujours présents, en particulier dans les environnements d'entreprise où un serveur d'applications peut contenir des centaines de JAR, dont beaucoup dépendent de différentes versions les unes des autres et s'exécutent (plus ou moins) simultanément.
Ma question :
Bien que je sois intéressé par OSGi et que je veuille commencer à m'y intéresser pour voir si cela peut être utile à mes projets, je n'ai tout simplement pas le temps de m'asseoir et d'apprendre quelque chose d'aussi vaste, du moins pour le moment.
Que doivent donc faire les développeurs non-OSGi lorsque ces problèmes surviennent ? Quoi Java (Oracle/Sun/JCP) existent actuellement, le cas échéant ? Pourquoi Jigsaw a-t-il été supprimé de J7 ? La communauté est-elle sûre que Jigsaw sera implémenté l'année prochaine dans J8 ? Est-il possible d'obtenir Jigsaw pour votre projet même s'il ne fait pas encore partie de la plate-forme Java ?
Je suppose que ce que je demande ici est une combinaison de panique, d'intrigue et de facepalm. Maintenant que je comprends enfin ce qu'est OSGi, je ne "comprends" pas comment quelque chose comme Jigsaw a mis plus de 20 ans à se concrétiser, et comment il a pu être mis en boîte avant sa sortie. Cela semble fondamental.
Et, en tant que développeur, je suis également curieux de savoir quelles sont mes solutions, sans OSGi.
Aussi, Nota : Je sais que ce n'est pas un " programmation pure "Mais avant que certains d'entre vous ne prennent la grosse tête, je tiens à préciser (encore une fois, pour mémoire) que j'ai délibérément posé cette question sur SO. C'est parce que je n'ai rien d'autre que le plus grand respect pour mes collègues de SO et que je cherche une réponse de niveau architectural de la part de certains des "Dieux de l'informatique" que je vois rôder ici chaque jour.
Mais, pour ceux d'entre vous qui veulent absolument insister qu'une question de l'OS soit appuyée par un segment de code :
int x = 9;
(Merci à tous ceux qui peuvent nous éclairer sur cette histoire d'enfer OSGi/Jigsaw/classloader/namespace/JAR).