Donc, hier matin, je n'avais aucune idée de ce qu'était même OSGi. OSGi était juste un mot à la mode que je voyais sans cesse revenir, et j'ai donc finalement mis de côté un peu de temps pour le rafraîchir.
Cela semble en fait assez cool, donc je voudrais commencer par déclarer (pour mémoire) que je ne suis pas anti-OSGi en aucun cas, ni que ce n'est une question "OSGi-bashing".
En fin de compte, il semble qu'OSGi ait - essentiellement - abordé JSR 277 sur la modularité Java, qui a reconnu qu'il y avait des lacunes dans la JAR
spécification de fichier qui peuvent conduire à des problèmes de résolution d'espace de noms et de chargement de classe dans certains cas secondaires. OSGi fait aussi beaucoup d'autres trucs vraiment sympas, mais d'après ce que je peux vérifier, c'est son plus gros tirage (ou l'un d'entre eux).
Pour moi - en tant que développeur Java EE assez récent (quelques années maintenant), il est absolument ahurissant 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 fichiers JAR, dont beaucoup dépendent de différentes versions les uns des autres et s'exécutent tous (plus ou moins) simultanément.
Ma question:
Aussi intéressé que je suis par OSGi, et même si je veux commencer à en apprendre davantage pour voir où / si cela pourrait être utile à mes projets, je n'ai tout simplement pas le temps de m'asseoir et d'apprendre quelque chose d'aussi grand, Au moins maintenant.
Alors, que doivent faire les développeurs non OSGi lorsque ces problèmes surviennent? Quelles solutions Java (Oracle / Sun / JCP) existent actuellement, le cas échéant? Pourquoi Jigsaw a-t-il été coupé de J7? Dans quelle mesure 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 cela aurait pu être mis en conserve à partir d'une version. Cela semble juste fondamental.
Et, en tant que développeur, je suis également curieux de savoir quelles sont mes solutions, sans OSGi.
En outre, Remarque : Je sais que ce n'est pas une « programmation pur » question de type, mais avant certains d' entre vous obtenez votre nez courbé hors de forme, je voulais à l'autre (encore une fois, pour le dossier) que je délibérément mis cette question sur ALORS. C'est parce que je n'ai que le plus grand respect pour mes collègues SOers et je cherche une réponse au niveau architectural de certains des "Dieux de l'informatique" que je vois rôder ici chaque jour.
Mais, pour ceux d'entre vous qui insistent absolument pour qu'une question SO soit accompagnée d'un segment de code:
int x = 9;
(Merci à tous ceux qui peuvent peser sur ce truc OSGi / Jigsaw / classloader / namespace / JAR hell!)