OSGi Ressourcen aus anderem Bundle laden

G

Gast2

Gast
Hallo zusammen,

gibt es in OSGi eine Möglichkeit ressourcen (xml,bilder usw.) aus einem anderen Bundle zu laden?
 

Sonecc

Gesperrter Benutzer
Sry SirWayne.
Das ist leider die übliche Art und Weise das was du willst zu bewerkstelligen. Zumindest AFAIK.
 
G

Gast2

Gast
Ok nochmal genauer^^...
Bundle A hat eine Klasse (Standardimplementierung) das auf Resourcen in einem anderen Bundle (welches Bundle A nicht kennt) darauf zugreifen/einlesen soll.
Da Bundle B einen anderen Classloader als Bundle A hat, kenn ich nur die Möglichkeit (z.B. über OSGi Service) Bundle A dem BundleContext von Bundle B,X,Z zu übergeben, damit Bundle A die Resourcen einlesen kann.

Java:
this.getBundleContextOtherBundle().getBundle().getResources(resourceName);

Die Frage war ob das auch einfacher geht ohne das Bundle A einen BundleContext von dem anderen Bundle braucht, wahrscheinlich gehts aber nicht anders.
 
M

maki

Gast
Bundle A hat eine Klasse (Standardimplementierung) das auf Resourcen in einem anderen Bundle (welches Bundle A nicht kennt) darauf zugreifen/einlesen soll.
Klingt für mich so, als ob die Standardiplementierung nicht in Bundle A liegen würde, dann hätte Bundle A eine direkte Abhängigkeit auf das noch unbekannte Bundle ;)
 
G

Gast2

Gast
Klingt für mich so, als ob die Standardiplementierung nicht in Bundle A liegen würde, dann hätte Bundle A eine direkte Abhängigkeit auf das noch unbekannte Bundle ;)

Man kann den Satz auch anders lesen ;), probier ich es nochmal anders zu beschreiben

Bundle A hat eine Klasse (Standardimplementierung) das auf Resourcen in einem anderen Bundle (B) , dieses Bundle (B) kennt Bundle A, aber Bundle A kennt Bundle (B) nicht, darauf zugreifen/einlesen soll.
Einfach ausgedrückt das Bundle das Laden soll, kennt das Bundle aus welchem es Laden soll nicht.
 

Sonecc

Gesperrter Benutzer
Schon die Tatsache dass du es 3 mal erläutern musstest, bevor ich es verstehe spricht für einen Konzeptfehler...

Wenn ich auf Resourcen eines anderen Bundles zugreifen will, muss ich dieses Bundle kennen. Andernfalls muss ich die Resourcen selbst anbieten.

Einzige sinnvolle Lösung die mir da einfällt ist, dass du ein Bundle C erstellst, dass die gemeinsamen Resourcen von Bundle A und Bundle B enthält. (Sofern Bundle B die Resourcen die Bundle A benötigt überhaupt braucht)
 
G

Gast2

Gast
Schon die Tatsache dass du es 3 mal erläutern musstest, bevor ich es verstehe spricht für einen Konzeptfehler...

Echt das kannst du daraus ableiten ohne die fachliche Anforderung, respekt =) =)...

Wie gesagt es gibt einen Weg, einfach den BundleContext dem Bundle zu Verfügung Stellen, dann gehts über getBundle()...
 

Huecheln

Mitglied
Hi,

ich weiß nicht ob es dir hilft, aber ich habe folgendes gemacht, um Icons aus unbekannten Bundles zu bekommen (Infos wie z.B. BundleID und Pfad habe ich über einen Extension ausgelesen):

Code:
URL url = Platform.getBundle("IDdesBundles").getResource("PfadInnerhalbDesBundles");

ImageDescriptor desc = ImageDescriptor.createFromURL(url);

Falls du es also hinbekommst, aus einer java.net.URL das für dich benötigte Format zu bekommen, könnte es funktionieren...
 
G

Gast2

Gast
ich weiß nicht ob es dir hilft, aber ich habe folgendes gemacht, um Icons aus unbekannten Bundles zu bekommen (Infos wie z.B. BundleID und Pfad habe ich über einen Extension ausgelesen):

In OSGi gibt es keine Extensions


Code:
URL url = Platform.getBundle("IDdesBundles").getResource("PfadInnerhalbDesBundles");

ImageDescriptor desc = ImageDescriptor.createFromURL(url);
1. In OSGi gibt es auch kein Platform.getBundle()....
2. Brauchst du doch dazu die Bundle ID also ist das Bundle doch bekannt ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N OSGi: Ressourcen gezielt aus bestimmten Modulen laden? Plattformprogrammierung 4
G Jar Datei in Eclipse erstellen mit Ressourcen Ordner Plattformprogrammierung 9
T OSGi OSGI bundle bauen org.apache.xerces Plattformprogrammierung 3
H !MESSAGE Missing required bundle javax.mail_1.4.0. Plattformprogrammierung 5
G OSGi Bundle-ClassPath Plattformprogrammierung 3
F OSGi NPE bei deklarativen Bundle mit Maven SCR Plattformprogrammierung 2
G RCP Datei im Bundle Plattformprogrammierung 6
A RCP RAP-Bundle nach Installation nicht auffindbar?! Plattformprogrammierung 5
A OSGi Bundle exportieren, importieren und vewenden geht nicht?! Plattformprogrammierung 4
lumo RCP The System Bundle was updated Plattformprogrammierung 13
A RCP p2 - manuelles update "check for updates" von core bundle funktioniert nicht Plattformprogrammierung 6
musiKk OSGi Bundle findet Activator nicht (ClassNotFoundException) Plattformprogrammierung 1
S OSGi Ablegen von Bundle-Eigenschaften (unabhängig) Plattformprogrammierung 4
L RCP Plugin als Bundle geklarieren? Plattformprogrammierung 3
O Bundle in Projekt-Dependencies nicht sichtbar Plattformprogrammierung 6
lumo Bundle verzeichnis Plattformprogrammierung 10
G [osgi] bundle spezifische properties Plattformprogrammierung 5
C RCP Applikation starten als OSGi Bundle Plattformprogrammierung 2
B OSGi, Euqinox, innherhalb vom Bundle Pfad des zugehörigen jar-files ermitteln Plattformprogrammierung 6
N bundle und classpath Plattformprogrammierung 12

Ähnliche Java Themen


Oben