Bis gestern Morgen hatte ich keine Ahnung, was OSGi überhaupt war. OSGi war nur ein Schlagwort, das immer wieder auftauchte, und so nahm ich mir endlich etwas Zeit, um es aufzufrischen.
Eigentlich scheint es ziemlich cool zu sein, also möchte ich zunächst (für die Aufzeichnung) sagen, dass ich in keiner Hinsicht gegen OSGi bin, und dies ist auch keine "OSGi-Bashing" -Frage.
Letztendlich scheint es, dass OSGi - im Wesentlichen - angesprochen hat JSR 277 über Java-Modularität befasst zu haben, das erkannte, dass es Mängel bei der JAR
Dateispezifikation gibt, die in bestimmten Eckfällen zu Problemen bei der Auflösung von Namespaces und beim Laden von Klassen führen können. OSGi macht auch viele andere wirklich coole Sachen, aber soweit ich das beurteilen kann, ist das die größte Auslosung (oder eine davon).
Für mich - als ziemlich neuer (seit einigen Jahren) Java EE-Entwickler ist es absolut umwerfend, dass wir uns im Jahr 2011 befinden und derzeit in der Ära von Java 7 leben und dass diese Probleme beim Laden von Klassen immer noch vorhanden sind. Insbesondere in Unternehmensumgebungen, in denen auf einem App-Server Hunderte von JARs installiert sein können, von denen viele von verschiedenen Versionen abhängen und alle (mehr oder weniger) gleichzeitig ausgeführt werden.
Meine Frage:
So interessiert ich mich für OSGi bin und so sehr ich anfangen möchte, etwas darüber zu lernen, um zu sehen, wo / ob es für meine Projekte von Nutzen sein könnte, ich habe einfach nicht die Zeit, mich hinzusetzen und etwas so Großes zu lernen. zumindest jetzt.
Was können Nicht-OSGi-Entwickler tun, wenn diese Probleme auftreten? Welche Java- Lösungen (Oracle / Sun / JCP) gibt es derzeit, falls vorhanden? Warum wurde Jigsaw aus J7 geschnitten? Wie sicher ist die Community, dass Jigsaw nächstes Jahr in J8 implementiert wird? Ist es möglich, Jigsaw für Ihr Projekt zu erhalten, obwohl es noch nicht Teil der Java-Plattform ist?
Ich denke, was ich hier frage, ist eine Kombination aus Panik, Intrigen und einer Gesichtspalme. Jetzt, da ich endlich verstehe, was OSGi ist, "verstehe" ich einfach nicht, wie so etwas wie Jigsaw mehr als 20 Jahre gebraucht hat, um Früchte zu tragen, und wie das aus einer Veröffentlichung hätte stammen können. Es scheint nur grundlegend.
Und als Entwickler bin ich auch neugierig auf meine Lösungen ohne OSGi.
Auch Anmerkung : Ich weiß , dass dies keine „ist reine Programmierung “ -Typ Frage, aber bevor einige von Ihnen Ihre Nasen bekommen gebogen aus der Form, wollte ich in dem Zustand (wieder, für die Aufzeichnung) , dass ich absichtlich diese Frage stelle auf SO. Das liegt daran, dass ich nichts anderes als den größten Respekt vor meinen SO-Kollegen habe und nach einer Antwort auf architektonischer Ebene von einigen der "Götter der IT" suche, die hier jeden Tag herumlungern.
Aber für diejenigen unter Ihnen, die absolut darauf bestehen, dass eine SO-Frage mit einem Codesegment hinterlegt wird:
int x = 9;
(Vielen Dank an alle, die dieses OSGi / Jigsaw / Classloader / Namespace / JAR-Höllenzeug abwägen können!)