OSGi: Ressourcen gezielt aus bestimmten Modulen laden?

Novanic

Bekanntes Mitglied
Hallo Leute,

ich möchte für mein Projekt eine Art Plugin-Mechanismus entwickeln und stelle mir das so vor, dass jedes Plugin in einem OSGi-Modul/Bundle umgesetzt ist und so in mein Projekt eingebunden werden kann. Ich glaube OSGi wäre dafür die richtige Wahl. Dabei möchte ich z.B. festlegen, dass jedes Modul einen "img"-Ordner mit einer "icon.png"-Datei hat und diese von meinem Projekt geladen werden kann. Dazu müsste die img/icon.png natürlich pro Modul direkt eindeutig adressiert werden können, was im Normalfall nicht so einfach möglich ist, weil die Ressource ja nicht in einem Package liegt. Ist das per OSGi möglich indem z.B. mit "bundle-name/img/icon.png" zugegriffen wird oder wie lässt sich das über einen anderen Weg geschickt per OSGi lösen? Und kann man per OSGi auch direkt Konventionen festlegen, sodass ein Modul validiert werden kann (z.B. dass jedes Modul eines bestimmten Typs die Datei "img/icon.png" besitzen muss)?

Danke schonmal im Voraus.

Gruß Sven
 

Wildcard

Top Contributor
Ja, OSGi ist für sowas ideal, aber ich würde die empfehlen direkt Eclipse RCP zu verwenden (basiert auf OSGi). Dort sind solche Dinge schon fertig eingebaut und du sparst dir viel Zeit.
 

Novanic

Bekanntes Mitglied
Danke für die schnelle Antwort. Welche Möglichkeiten gibt es denn mit OSGi um die Ressourcen pro Modul/Bundle zu laden bzw. zu adressieren? Wie sieht das in der Praxis aus? Wie oben beschrieben mit "bundle-name/img/icon.png" oder gibt es noch elegantere Methoden?

Eclipse RCP ist für mein Projekt leider nicht das richtige. Es soll eine schlanke Lösung bleiben. ;-)
 

Wildcard

Top Contributor
Welche Möglichkeiten gibt es denn mit OSGi um die Ressourcen pro Modul/Bundle zu laden bzw. zu adressieren?
Hier:
Bundle (OSGi Service Platform Release 4 Version 4.2)

Eclipse RCP ist für mein Projekt leider nicht das richtige. Es soll eine schlanke Lösung bleiben
Wie groß hast du dir denn vorgestellt? Das noch sinnvolle Minimum dürfte so bei 3-5MB liegen, also auch nicht viel größer als zB Equinox alleine.
Viele Sachen gehen mit dem Eclipse Aufbau deutlich einfacher durch das Extension Point/Extension Konzept und die vielen Hilfsklassen. Wenn eine GUI im Spiel ist würde ich auf jeden Fall Eclipse RCP verwenden.
 
G

Gelöschtes Mitglied 5909

Gast
Wenn es nicht sehr sehr viele sind würde ürde es sich anbieten einen Extender zu schreiben. Einfach mal nach OSGi Extender Pattern googlen.

Bundle#findEntries() und Bundle#getEntry() sind das was du suchst
 
Ä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
Kr0e OSGI - Anfängerfragen Plattformprogrammierung 3
K OSGi Verteilte Anwendung? Plattformprogrammierung 9
B OSGi Einsteiger OSGi-Applikation Plattformprogrammierung 9
S (OSGI - EQUINOX) Welche Eclipse IDE? Plattformprogrammierung 3
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
G OSGi Ressourcen aus anderem Bundle laden Plattformprogrammierung 15
G Jar Datei in Eclipse erstellen mit Ressourcen Ordner Plattformprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben