E 'un po' tardi per aiutare voi, probabilmente, ma vorrei documentare un modo semplice per consentire JavaFX all'interno di un ambiente OSGi nel caso in cui qualcuno, come me, ancora avuto problemi a farlo ....
Il fatto è che devi consentire a JavaFX di caricare e utilizzare qualsiasi classe desiderata (JavaFX utilizza internals di JRE che lo rende davvero difficile da raggruppare), quindi quello che vuoi veramente è dargli accesso a OSGi boaseping classpath ...
Non sono esperto, ma in questo blog, Costin Leau, di SpringSource, spiega come farlo (per ogni jar che presuppone l'accesso completo al classloader di sistema, non solo JavaFX) in 3 diversi modi:
http://blog.springsource.org/2009/01/19/exposing-the-boot-classpath-in-osgi/
ho scelto di usare l'opzione A, che in pratica significa impostando la proprietà OSGi-specificato (non specifiche per qualsiasi implementazione!) Nel file di configurazione del vostro contenitore OSGi:
org.osgi .framework.system.packages.extra = javafx.application; version = 0.0.0 ...
È possibile visualizzare l'intero valore della proprietà in questo Gist ho crea Ted:
https://gist.github.com/renatoathaydes/5021107
Io fondamentalmente impostato con tutti i pacchetti che il vaso JavaFX 2.2 in grado di esportare (e ho trovato questo fuori semplicemente lasciando cadere il vaso JavaFX nella cartella deploy del mio Apache Karaf, che automagicamente lo trasforma in un pacchetto e poi guarda il Manifesto generato) ...a proposito, ho provato ad usare il bundle generato da Karaf (che usa pax-wrap per farlo) ma questo non funzionerà a causa del modo in cui JavaFX prova a caricare le tue classi (che non sono visibili nel pacchetto JavaFX tentato, per non parlare di tutti i pacchetti JRE che JavaFX prova ad accedere).
Sospetto che non tutti i pacchetti che ho aggiunto siano effettivamente necessari, ma per essere al sicuro, li ho lasciati tutti come generato dal wrapper di Karaf e, visto che funziona, non lo cambierò a meno che non ci sia una buona ragione per farlo.
Ora uno qualsiasi dei miei pacchetti può utilizzare JavaFX fino a quando jfxrt.jar è presente nella cartella lib di JRE.
Ma non sto usando l'equinozio SWT ed eclipse. Non c'è un modo più generico di creare librerie di helper OSGi? – chrise
Ti consiglio di porre le tue domande sul [e (fx) clipse forum] (https://groups.google.com/forum/m/?fromgroups#!forum/efxclipse) – jewelsea
JavaFX in un pacchetto OSGi è ancora un po 'complicato . Il plug-in e (fx) clipse funziona con l'equinozio, ma non l'ho fatto funzionare con Apache Felix, quindi ho dovuto aggiungere le classi javafx al boot-classloader non all'osgi-bundle. Spero che ulteriori versioni FX miglioreranno qui. – chrise