Meine Projekt Verzeichnisstruktur (in Eclipse):Wie kann ich mich über eine mit ** CSS ** Ressource-Datei in einem OSGi-Bundle aus einem anderen OSGi-Bundle
MyProjectContainingCSS/
src/ --> "source directory" on Eclipse's classpath/buildpath
com.me.myapp
style.css
MyProjectInheritingCSS/
src/ --> "source directory" on Eclipse's classpath/buildpath
com.me.myapp
StyleImpl.java
Ich möchte in der CSS-Datei verwenden, style.css in dem OSGi-Bundle enthaltenen MyProjectContainingCSS
im anderen OSGi-Bundle MyProjectContainingCSS
in der Klasse StyleImpl.java
,
Etwas wie:
public class StyleImpl {
public static void main(String[] args) {
css = this.getClass().getResource("/com/me/myapp/style.css").toExternalForm();
scene.getStylesheets().add(css);
}
}
Wie kann ich eine CSS Ressourcendatei in einem OSGi-Bundle aus einem anderen OSGi-Bundle verwenden?
Vielen Dank im Voraus.
UPDATE
Die bnd.bnd Datei
Bundle-Version: 0.0.0.${tstamp}
-buildpath: \
../cnf/plugins/org.apache.felix.dependencymanager.annotation-3.2.0.jar;version=file,\
org.apache.felix.dependencymanager,\
osgi.core,\
launcher;version=latest,\
libs/commons-io-2.4.jar;version=file
Private-Package: ui.impl
Export-Package: ui
Import-Package: *
Run Descriptor
-runfw: org.apache.felix.framework;version='[4,5)'
-runee: JavaSE-1.8
-runsystemcapabilities: ${native_capability}
-resolve.effective: active;skip:="osgi.service"
-runbundles: \
org.apache.felix.dependencymanager,\
org.apache.felix.dependencymanager.runtime,\
org.apache.felix.dependencymanager.shell,\
org.apache.felix.metatype,\
org.apache.felix.eventadmin,\
org.apache.felix.configadmin,\
org.apache.felix.log,\
org.apache.felix.gogo.command,\
org.apache.felix.gogo.runtime,\
org.apache.felix.gogo.shell,\
launcher;version=latest,\
ui;version=latest,\
mainscreen;version=latest
-runsystempackages: javafx.application,javafx.scene,javafx.stage,javafx.scene.layout,javafx.event,javafx.collections,javafx.scene.control,javafx.scene.paint,javafx.scene.shape
Erstellen Sie eine Klasse im CSS-Bundle, um den InputStream für die CSS-Datei verfügbar zu machen und diese Klasse in ein anderes Bundle zu importieren. – 11thdimension
Woher weiß ein Paket, dass eine bestimmte Ressource mit einem bestimmten Namen in einem anderen Paket gefunden wird? Diese Annahme bedeutet, dass Sie die modulare Kapselung verletzen. Versuchen Sie, eine Lösung zu finden, die keine Annahmen über andere Module macht. Warum beschreiben Sie nicht das * reale * Problem, das Sie lösen möchten? –