OSGi Einsteiger OSGi-Applikation

baphomet13

Mitglied
Liebe Alle,

ich mache mich daran in Eclipse eine Java-Applikation (mit Maven) anzufangen, die später erweiterbar sein soll durch Plug-Ins. Hierfür will/soll ich die OSGi-Spezifikationen beachten.

Nun habe ich allerdings einige Einsteigerfragen. Ich habe leider dazu nichts in den FAQ gefunden, daher stelle ich diese Fragen im Forum.

1) Benötige ich für die Entwicklung Java EE und die passende Eclipse IDE?
2) Muss meine Applikation ein Bundle sein? Soweit ich es verstanden habe werden ja eigentlich nur die Plug-Ins als Bundle geschrieben...
3a) Welche OSGi-Pakete müssen als Dependencies angelegt sein, damit meine Applikation erweiterbar ist, bzw.
3b) Welche Klassen muss meine Applikations-Source dafür implementieren?

Ich hoffe, dass ich wenigstens die Ansätze zu OSGi richtig verstanden habe und Ihr mir mit den weiteren Fragen helfen könnt.

Danke!

Grüße,
B13
 
Zuletzt bearbeitet von einem Moderator:
M

maki

Gast
Hi,

was genau meinst du mit "OSGi Applikation mit Plugin-ins"?

Eclipse Equinox bietet einen Plugin Mechanismus, basiert zwar auf OSGi, erweitert ihn aber sehr.

Für "normale" OSGi Projekte (ohne Eclipse spezifische Erweiterungen) reicht bei einem Maven Build das felix maven bundle Plugin, Spring DM 2 bietets ein eigenes, und irgendwo gab es noch eines..

1. Wenn du Eclipse RCP bauen willst, wäre die RCP Version gut geeignet ( bietet bessere Unterstützung bei den Wizards), ansonsten reicht jede Eclipse IDE Version für Java. Da du maven nutzt, ist das m2eclipse Plugin Pflicht. Wenn du RCPs mit Maven bauen willst, soltest du Tycho nutzen.

2. Ja, in OSGi sind alles entweder Bundles, oder Bundle Fragmente.

3a. Musst schon genau sagen was du mit Plugin meinst, siehe oben

3b. Kommt darauf an, s.o. ;)


Hello, OSGi, Part 1: Bundles for beginners - JavaWorld (gibt 3 Artikel dazu)
OSGi with Eclipse Equinox - Tutorial

Ansonsten solltest du dir unbedingt deklarive Services ansehen, bzw. SpringDM
 

baphomet13

Mitglied
was genau meinst du mit "OSGi Applikation mit Plugin-ins"?

Ich meine eine Java-Applikation, die pluggable sein soll, wofür OSGi "benutzt" werden soll.

Eclipse Equinox bietet einen Plugin Mechanismus, basiert zwar auf OSGi, erweitert ihn aber sehr.

Equinox habe ich entdeckt, halte es auch für sehr sinnvoll, allerdings benutzt eine Haupt-Applikation aus der gleichen Arbeitsgruppe die org.osgi.*-Pakete, und ich werde mich höchstwahrscheinlich daran orientieren müssen.

1. Wenn du Eclipse RCP bauen willst, wäre die RCP Version gut geeignet ( bietet bessere Unterstützung bei den Wizards), ansonsten reicht jede Eclipse IDE Version für Java. Da du maven nutzt, ist das m2eclipse Plugin Pflicht. Wenn du RCPs mit Maven bauen willst, soltest du Tycho nutzen.

Mit "Eclipse RCP" meinst Du einen auf dem Eclipse-Framework basierenden Rich Client?

Ansonsten nutze ich m2eclipse schon. Welche Vorteile bietet Tycho?

2. Ja, in OSGi sind alles entweder Bundles, oder Bundle Fragmente.

Alles klar, das ist schonmal eine der wichtigsten Infos :)!

3a. Musst schon genau sagen was du mit Plugin meinst, siehe oben

Das ist so eine Frage ;). Prinzipiell natürlich erstmal beliebige Hinzufügungen zu meinem Programm. Mir wird allerdings langsam klar, dass ich von vornherein mehr oder weniger bestimmen können muss, wo diese von Dritten geschriebenen Plug-Ins sich in meine Applikation einfügen, oder? Bzw. heißt das, dass mindestens Teile meiner Menüführung dynamisch sein sollten, damit die Plug-Ins darauf zugreifen können... Oder vertue ich mich hier mächtig?


Danke, hatte ich auch schon beides gesehen (das Vogel-Tut ist ja eher sparsam), aber noch keinen Überblick gehabt, wie OSGi prinzipiell "funktioniert". Taste mich aber ran :).


Ansonsten solltest du dir unbedingt deklarive Services ansehen, bzw. SpringDM

Mache ich. Danach weiß ich dann auch, was das ist ;).

Danke erstmal!
Grüße,
B13
 
M

maki

Gast
Ich meine eine Java-Applikation, die pluggable sein soll, wofür OSGi "benutzt" werden soll.
Du meinst also nicht den Eclipse Equinox plug-in Mechnismus.

Mit "Eclipse RCP" meinst Du einen auf dem Eclipse-Framework basierenden Rich Client?
Ja.

Ansonsten nutze ich m2eclipse schon. Welche Vorteile bietet Tycho?
Tycho generiert dir Poms aus einem Eclipse Plugin Projekt, geht also den umgekehrten Weg zu einem "normalen" Maven Build. Tycho ist wohl die bessere Variante wenn es um Eclipse RCP/Plug-ins geht.

Das ist so eine Frage . Prinzipiell natürlich erstmal beliebige Hinzufügungen zu meinem Programm. Mir wird allerdings langsam klar, dass ich von vornherein mehr oder weniger bestimmen können muss, wo diese von Dritten geschriebenen Plug-Ins sich in meine Applikation einfügen, oder? Bzw. heißt das, dass mindestens Teile meiner Menüführung dynamisch sein sollten, damit die Plug-Ins darauf zugreifen können... Oder vertue ich mich hier mächtig?
OSGi Services sind immer dynamisch.
Was für ein "Menü" meinst du denn jetzt?
Vielleicht willst du ja doch ein Eclipse RCP Projekt ;)

Danke, hatte ich auch schon beides gesehen (das Vogel-Tut ist ja eher sparsam), aber noch keinen Überblick gehabt, wie OSGi prinzipiell "funktioniert". Taste mich aber ran
Dann sieh dir die anderen 3 Artikel an.

Wäre an dieser Stelle gut, wenn du deine Anwendung beschreibst, damit meine nicht den plugin teil, sondern worum es sich dabei eigentlich handelt. Wenn du ein RCP schreibst, solltest du imho unbedingt Eclipse RCP nutzen, nimmt einem sehr viel ab, hat aber auch seine sehr steile Lernkurve, OSGi ist dabei eine Grundlage, die man verstehen muss.
 

baphomet13

Mitglied
Tycho generiert dir Poms aus einem Eclipse Plugin Projekt, geht also den umgekehrten Weg zu einem "normalen" Maven Build. Tycho ist wohl die bessere Variante wenn es um Eclipse RCP/Plug-ins geht.

Hm, wenn ich darüber nachdenke muss ich wahrscheinlich trotz allem Maven benutzen (Vorgabe des Chefs).

Wäre an dieser Stelle gut, wenn du deine Anwendung beschreibst, damit meine nicht den plugin teil, sondern worum es sich dabei eigentlich handelt.

Prinzipiell geht es um eine Swing-Applikation, die eine XML-Quelle erweitert und speichert.
 
M

maki

Gast
Hm, wenn ich darüber nachdenke muss ich wahrscheinlich trotz allem Maven benutzen (Vorgabe des Chefs).
Tycho ist für Maven, also kein Widerspruch.

Prinzipiell geht es um eine Swing-Applikation, die eine XML-Quelle erweitert und speichert.
Swing mit OSGi... wenn schon eine OSGi RCP, dann imho gleich Eclipse RCP.
Ansonsten würde ich OSGi gleich weglassen, wozu das Rad nochmals eckig erfinden?
Es gibt de facto keine bessere RCP Plattform für OSGi als Eclipse RCP.
 

Wildcard

Top Contributor
OSGi liefert einen tollen Unterbau um eine Anwendung erweiterbar zu machen. OSGi alleine reicht aber nicht wenn deine Oberfläche erweiterbar sein soll, dafür brauchst du dann ein flexibles UI Framework das solche Erweiterungen vorsieht.
Soetwas selbst zu schreiben wird dich sehr sehr viel Arbeit kosten und am Ende ist es nicht ansatzweise so mächtig wie Eclipse RCP, diese Entscheidung solltest du also nicht leichtfertig fällen.
Falls du dir darunter nicht viel Vorstellen kannst, überleg dir einfach mal das eine Anwendung später in der Lage sein muss Toolbars dynamisch aufzubauen je nachdem welche plugin-ins installeriert wurden. Das jedes Plugin alle möglichen Popup Menüs erweitern können muss, das diverse Buttons mit unterschiedlicher Funktionalität belegt werden müssen je nachdem welcher Editor/ welche View (falls du ein ähnliches Konzept wie Eclipse im Sinn hast) gerade aktiv ist. Das alles ist erstmal durchaus noch machbar, allerdings gibt es in einer erweiterbaren Anwendung niemanden der alle Teile des Ganzen zur Compile-Time kennt und dann wird die Sache kompliziert.
 

baphomet13

Mitglied
Ah, okay. Jetzt verstehe ich. Hört sich so an, als sollte ich doch auf Eclipse RCP setzen. Werde mir das jetzt erstmal anschauen. Danke zunächst für die hilfreichen Hinweise! Bei Bedarf werde ich den Thread unbedingt wieder eröffnen.

Grüße,
B13
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M RCP Gute Einsteiger-Bücher Plattformprogrammierung 6
F OSGi und root rechte Plattformprogrammierung 2
Z MySQL-Treiber in RAP-Anwendung für Jetty im OSGI- Equinox- Maven-Dschungel Plattformprogrammierung 0
Shams Antbuild - Problem bei OSGi Anfängertutorial Plattformprogrammierung 0
T OSGi OSGI bundle bauen org.apache.xerces Plattformprogrammierung 3
G OSGi Bundle-ClassPath Plattformprogrammierung 3
P OSGi registerService Plattformprogrammierung 3
H OSGi OSGi + Logback + slf4j - Eclipse Run Configuration Plattformprogrammierung 7
G OSGI bundleChanged Plattformprogrammierung 2
E OSGi Equinox HttpService only supports servlet 2.1 specification. Plattformprogrammierung 2
X Probleme mit dem OSGi-Framework Plattformprogrammierung 3
S OSGi Declarative Service Cardinality Plattformprogrammierung 6
Kr0e OSGI - Anfängerfragen Plattformprogrammierung 3
K OSGi Verteilte Anwendung? Plattformprogrammierung 9
S (OSGI - EQUINOX) Welche Eclipse IDE? Plattformprogrammierung 3
N OSGi: Ressourcen gezielt aus bestimmten Modulen laden? Plattformprogrammierung 4
borobudur OSGi OSGi Blueprint Integrationstests Plattformprogrammierung 6
S OSGi Filter Syntax Plattformprogrammierung 2
N OSGi Dependency Loading Plattformprogrammierung 2
S OSGi Bibliothek für alle Plattformprogrammierung 5
H OSGI mit Eclipse und Maven Plattformprogrammierung 5
X OSGi Splash ohne product Plattformprogrammierung 2
G OSGi: Service registrieren Plattformprogrammierung 2
lumo OSGI Service - ServiceReference Plattformprogrammierung 3
G [osgi] bundle spezifische properties Plattformprogrammierung 5
DEvent [osgi] Services implementieren Plattformprogrammierung 2
C RCP Applikation starten als OSGi Bundle Plattformprogrammierung 2
B equinox OSGi EclipseStarter.startup NullPointerException Plattformprogrammierung 3
B OSGi, Euqinox, innherhalb vom Bundle Pfad des zugehörigen jar-files ermitteln Plattformprogrammierung 6
B OSGi, Equinox, Exceptions werden "ignoriert" Plattformprogrammierung 21
C OSGi, Hibernate und welche Datenbank? Plattformprogrammierung 4
astralarse Custom OSGi Launcher mit config.ini Plattformprogrammierung 6
C Eclipse - Externe OSGi bundles adden Plattformprogrammierung 7
F OSGi Anwendungsdesign Plattformprogrammierung 3
N OSGI in Netbeans? Plattformprogrammierung 5
X OSGi und RCP Plattformprogrammierung 15
C OSGi shutdown Plattformprogrammierung 4
D Problem mit Synth Painter und OSGi (Equinox) Plattformprogrammierung 8
D OSGi JSR296 (Swing Application Framework) - Konzeptionsfrage Plattformprogrammierung 2
G Osgi Plattformprogrammierung 5
A Plugin konzepte: OSGI oder JPF? Plattformprogrammierung 5
S OSGI Framework Knopflerfish Plattformprogrammierung 11
F OSGi Applikation läuft einem Linux langsam, auf dem anderen normal Plattformprogrammierung 4
J Suche ein UiEvent welches mich per Injection benachrichtigt wenn die Applikation geschlossen wird. Plattformprogrammierung 1
V Eigenständige Applikation als Jar in Plugin einbinden Plattformprogrammierung 2
dzim Migration einer bestehenden Applikation nach e4 Plattformprogrammierung 11
A deploy rcp-applikation Plattformprogrammierung 3
M Nach Export läuft Applikation nicht mehr??? Plattformprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben