OSGI - Anfängerfragen

Kr0e

Gesperrter Benutzer
Hallo,

ich hab vor ein paar Tagen angefangen, mich in OSGi einzuarbeiten. Ich muss schon sagen, dass das eine wirklich tolle Sache ist...

Jetzt nach den ersten Testprojekten, wollte ich mal ein erstes "etwas" größeres Projekt(Mit mehr als nur einem Bundle :D) versuchen. Dabei kommen mir ein paar Fragen:

1. Wenn ich z.B. per DS eine Abhängigkeit zu einem Service erstelle, wie wirkt sich das auf die Startbarkeit des Bundles aus ? Ich hab das mal probiert, aber iwie ließ mein Bundle sich dennoch starten, ohne mir eine Fehlermeldung auszugeben, z.B. das es vom Service XY keine Impl. gibt zur Zeit....

2. Die Begriffe Cardinality und Policy in der XML Component Definition sind mir auch noch etwas unklar...

3. eher eine Stil-Frage: Man kann ja Dependencies zu bestimmen Paketen aber auch zu ganzen Bundles herstellen. Frage: Wann sollte man das eine bzw. das andere nutzen ? Bzw. ist die Abhängigkeit zu Paketen vlt "unschön" oder andersrum ?

4. Wie kann man mit OSGi eine Anwendung später dann erstellen ? Ich würde gerne rein OSGi verwenden ohne direkt eine Eclipse RCP zu benutzen, oder ist eine Eclipse RCP ohne zusätzliche Bundels in etwa das, was ich brauche ? Ich bin iwie z.T. noch verwirrt, da mir hier noch der ÜBerblick fehlt. Oder empfehlt ihr generell Eclipse RCP ?

Gruß,

Chris
 

xerberuz

Bekanntes Mitglied
  1. Das Bundle startet sobald alle Abhängigkeiten des Bundles aufgelöst sind. Also alle Packages und Bundles die im Manifest stehen. Der Service wird allerdings erst aktiviert wenn dessen Abhängigkeiten aufgelöst sind.
  2. Cardinality gibt die Menge an. Also mindestens einen, genau einen, ...
    Policy dynamic: nachdem der Serivce aktiviert wurde bekommst du trotzdem neue zugewiesen. static: Wenn der Service aktiv ist behälst du erstmal die die du hast und bekommst keine neuen
  3. Abhängigkeit zu Paketen ist zu bevorzugen. Wobei das eine ewige Streitfrage bleibt ;-) Es ist manchmal auch sinnvoll direkt an Bundles gebunden zu sein.
  4. Im Prinzip ist RCP nicht notwendig für eine Anwendung. Lediglich das OSGi Framework. Also Equinox, Felix,... . RCP ist eben nur sinnvoll wenn deine Applikation auf RCP aufbauen soll. Du kannst auch andere Frameworks nutzen.
 

Wildcard

Top Contributor
3. package imports sind allgemein flexibler und erstmal zu bevorzugen. Require Bundle wird aber durchaus auch verwendet. Es macht die Sache etwas einfacher zu verwalten und es gibt Fälle wo man mit import-package an Grenzen stößt (zB bei split packages)

4. Hängt von der Art der Applikation ab. Für einen Desktop Client ist oft RCP zu bevorzugen weil unglaublich viel Funktionalität mitkommt. Wenn die Anwendung möglichst klein sein soll ist RCP nicht so das richtige, so ab 5 MB ist zwar möglich, aber mit mehr Funktionalität können es auch schnell mal 100 MB werden.
Hier ein paar typische Beispiele für Eclipse RCPs:
Eclipse RCP examples
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
K OSGi Verteilte Anwendung? Plattformprogrammierung 9
B OSGi Einsteiger OSGi-Applikation 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

Ähnliche Java Themen


Oben