Gemini ist die Referenzimplementierung für OSGi Blueprint-Container und Apache Widder ist ein weiterer Blueprint-Container, der weit verbreitet ist ... auch in Apache Karaf.
Wenn ich ein neues Projekt starte (mit Open-Source-Technologien als Voraussetzung) und plane, Blueprint zu verwenden, was sollten meine Überlegungen bei der Auswahl zwischen diesen beiden sein?
Die Auswahl basiert darauf, welcher OSGi-Container verwendet wird, wobei:
Spielt das überhaupt eine Rolle? h. Kann ich einfach gegen Blueprint-Spezifikationen kodieren und die Implementierung entscheiden lassen, welcher DI-Container in der Produktion verwendet wird?
Tut mir leid, wenn diese Frage nicht sehr spezifisch ist, aber das Thema selbst ist ziemlich verwirrend für mich.
Wenn Sie nur Blueprint verwenden, ist Ihre Idee, die Spezifikation zu kodieren und die Bereitstellungszeit zu bestimmen, eine gute Idee. Das Verhalten der beiden Implementierungen sollte identisch sein. Wenn Sie Pech haben, werden Sie verschiedene Fehler in den beiden finden, aber hoffentlich nicht, da beide Implementierungen ausgereift sind. Ein Faktor, der Ihre Entscheidung beeinflussen könnte, ist, dass Sie feststellen, dass die Leistung zwischen den beiden unterschiedlich ist. (Aber für die Leistung, messen, nicht raten!)
Wenn Sie Dinge tun, die über Core-Blueprint hinausgehen, wie Container-gesteuerte JPA und JTA, werden Sie feststellen, dass es offensichtlicher Unterschiede zwischen Aries und Gemini gibt. Ich weiß, dass Aries in diesem Bereich zum Beispiel eine Reihe von Blueprint-Extendern hat (ich bin ein Aries-Committer).
Im Prinzip sollte Widder in Jungfrau und Gemini in Karaf laufen, aber ich bin nicht sicher, ob ich es selbst ausprobieren möchte, da die Dinge in beiden Stapeln auf Blueprint aufbauen.
-
Ссылка - Enterprise OSGi in Aktion
Tags und Links osgi