# OSGi und RCP



## xcr (6. Aug 2008)

Hi, 
ich stelle mich gerade echt blöd an aber ich finde nichts hilfreiches zu meinem Problem.

Situation:
Ich habe ein OSGi Framework mit einer kleinen Swing GUI. Nun möchte ich einfach diese GUI durch eine RCP GUI ersetzen aber ich verstehe einfach nicht wie ich eine RCP GUI nun da einbinde?!

Die alte GUI läuft einfach in einem Bundle, also dachte ich so etwas müsste ja auch mit der RCP GUI gehen allerdings wüsste ich nicht wie.

Könnte mir bitte jemand kurz auf die Sprünge helfen?

Danke


----------



## Wildcard (6. Aug 2008)

Was ist 'die RCP' GUI? Du meinst du möchtest die Eclipse Workbench verwenden? SWT? JFace?


----------



## xcr (6. Aug 2008)

Ok das war schnell...

Ja ich möchte die Eclipse Workbench benutzen, das Framework gefällt mir und ich finde die Idee mit den Extension Points auch interessant aber ich habe noch keine Ahnung wie das alles genau abläuft, ich lese mich noch ein.
Das ganze soll aber am Ende kein Plugin sein sondern standalone in meinem OSGi Framework als Interaktionsmöglichkeit dienen. 
(Anzeige von Daten und Auslösen von Aktionen...)

Ich habe mal testweise ein minimales RCP "product" nach diesen (und anderen) Tutorials erstellt und über diesen "launch link" auf der Overview-Seite läuft auch soweit schonmal alles:
www.linux-magazin.de/heft_abo/ausgaben/2005/08/einfach_einstecken
www.linux-magazin.de/heft_abo/ausgaben/2005/10/erstkontakt_mit_dem_user
www.linux-magazin.de/heft_abo/ausgaben/2005/12/marken_zeichen
www.linux-magazin.de/heft_abo/ausgaben/2006/02/die_eigene_sicht

Die nutzen ja dann SWT und JFace so wie ich das verstehe, zumindest habe ich beide Packages importieren müssen in der "Configuration" der "product" Datei.
Das mit dem Product ist eh noch etwas magisch momentan.


----------



## Wildcard (6. Aug 2008)

SWT dürfte kein Problem in einem Bundle sein, JFace wohl auch nicht, aber die Workbench...  :? 
Um welches OSGi Framework handelt es sich? Weißt du, ob Eclipse überhaupt in einem OSGi Framework != Equinox lauffähig ist?
Ich zumindest habe davon noch nichts gehört


----------



## xcr (6. Aug 2008)

Danke für deinen Beistand, ich bin langsam verwirrt und das macht keinen Spaß 

Ich benutze sogar Equinox und ich vermute fast, dass ich irgendwas mit den ExtensionPoints machen muss...

Mit der Workbench meinst du doch dieses typische Layout wie es bei Eclipse und eben all diesen Applikationen zu sehen ist oder?
www.eclipse.org/community/rcpos.php


----------



## Wildcard (6. Aug 2008)

Nun, wenn du Equinox verwendest, gibt es dann einen bestimmten Grund, warum du das OSGi Framework als Target Platform verwendest, anstatt einen regulären Eclipse RCP zu verwenden?


----------



## xcr (6. Aug 2008)

Nun, also ich habe bisher das OSGI Framework quasi "standalone" betrieben. Ich habe mir das Equinox SDK (eclipse-equinox-SDK-3.4.zip) gezogen und einfach das verwendet, weil ich von meiner IDE möglichst unabhängig arbeiten wollte.

Ok, nun möchte ich RCP hinzunehmen aber was meinst du mit der Aussage?
Das RCP SDK habe ich mir auch getrennt runtergeladen und verwende es derzeit, allerdings sehe ich noch nicht was das mit der Target Platform überhaupt zu tun hat. Dort sind doch einfach nur alle Plugins zusammengefasst die zur Verfügung stehen sollen oder?

Ich habe noch ein großes Verständnisproblem was ich eigentlich gerade nicht verstehe. 
Also mein OSGi (Equinox) Framework kann ich starten, Bundles laden und manipulieren.
Die RCP Workbench starte ich derzeit über irgend einen Link oder kann sie exportieren und manuell starten (außerhalb des Equinox Frameworks).

Wie passt das zusammen? Sry ist bestimmt offensichtlich aber ich verstehe gerade den Zusammenhang nicht :/


----------



## xcr (6. Aug 2008)

Also nochmal ganz kurz: ich verstehe nicht, wie ich meine Workbench in einem Bundle initialisiere.


----------



## Wildcard (6. Aug 2008)

RCP ist eine Eclipse Auslieferung bei der du bestimmst welche Bundles installiert sind.
Bei einem Eclipse RCP läuft im Hintergrund das Equinox Framework um die Bundles zusammen zu halten, aber RCP an sich ist kein Bundle das man in sein OSGi Framework stecken kann.
Überleg dir erstmal genau was du haben möchtest, und ob ein Eclipse RCP nicht sinnvoller ist, als das nackte Framework...


----------



## xcr (6. Aug 2008)

Hm ok, der Begriff "Eclipse RCP" stört mich noch etwas. 

Ich hätte mir sowieso gewünscht, dass man das alles etwas gelöster von Eclipse halten würde, da man mit Eclipse zwangsweise immer die IDE in Verbindung bringt.

Allerdings habe ich mir schon etwas ähnliches gedacht. Bei der Definition des "products" kann man ja Plugins festlegen die benötigt werden. Das ist aber der falsche Ort um meine Bundles anzugeben oder?
Ich nutze declarative services und es ist zumindest schon mal keiner gestartet worden. Oder ich habe nochmal einen anderen Fehler gemacht.


----------



## Wildcard (6. Aug 2008)

Eclipse ist keine IDE, sondern ein Framework. Die JDT für Eclipse sind eine Java IDE.
Naja, wenn du einen Eclipse RCP möchtest, dann reicht ein OSGi Bundle nicht aus, dann solltest du schon PlugIns erstellen (zusätzlich zum OSGi Bundle Manifest eine plugin.xml).
Die PlugIns verpackst du in einem oder mehreren Features und das Product ist am Schluß für das Branding zuständig.


----------



## xcr (6. Aug 2008)

Hmmm ok, ich dachte da gibt es eine elegantere Lösung als jetzt doch wieder Plugins. 
Gerade sowas wollte ich nicht, da außer einem Bundle keines was mit der GUI zu tun hat.

Vielleicht mache ich doch wieder eine ganz normale Swing GUI.
Ich wollte halt diese schönen Features des variablen Layouts nutzen die aber ja sehr Eng mit dem RCP Konzept verzahnt sind...

Ok, vielen Dank für deine Mühen, ich werde jetzt abwägen wie ich weiter mache.


----------



## Wildcard (6. Aug 2008)

Ich sage nicht, das es nicht möglich ist, ich weiß lediglich nicht, wie es geht.
Ich denke nur, wenn es aussehen soll wie RCP und funktionieren soll wie RCP, warum nimmt man dann nicht RCP?


----------



## xcr (6. Aug 2008)

Du hast sicher Recht aber mir ist es irgendwie suspekt wieso auf einmal meine Bundles, die eigentlich bis auf eines vollends unabhängig von der GUI sind umgebaut werden müssen (ich habe noch nie Plugins erstellt, keine Ahnung, muss ich morgen schauen) und augenscheinlich der GUI unterstellt werden.

Also mein Denkknoten basiert einfach darauf, dass ich mit RCP dieses grafische Framework assoziiere und ich eigentlich nur eine schöne GUI als Frontend haben möchte.
Dass ich dann quasi mein OSGi/Equinox Framework aufgebe um das nun RCP (das ich irgendwie immernoch mit einem GUI Framework assoziiere) zu übergeben, scheint mir einfach unangebracht.

Ich werde mir das morgen betrachten wie das mit den Plugins geht.

Irgendwie werde ich den Knoten im Gehirn noch nicht richtig los.


----------



## Wildcard (6. Aug 2008)

Nein, so kann man das nicht sagen.
Alle Plugins sind gleichzeitig auch OSGi Bundles. Der unterschied zwischen RCP und einer normalen, auf OSGi aufbauenden Applikation, ist das man mit RCP die Eclipse spezifischen Bundles und PlugIns verwenden kann (wie zB die Workbench).


----------



## xcr (6. Aug 2008)

Hm ok, ich glaube jetzt komme ich langsam dahinter. 
Das war ein schwieriger Start voller Missverständnisse 

Danke nochmal!


----------

