Sto lavorando a un bundle OSGi che implementa un servizio come wrapper su un eseguibile nativo. Cioè, il servizio esegue l'eseguibile con ProcessBuilder
, lo alimenta alcuni dati e recupera il risultato. La mia domanda riguarda il modo migliore per impacchettare questo pacchetto. L'eseguibile nativo include un numero di file di dati dipendenti che devono essere tutti presenti sul disco per l'esecuzione dello strumento. Ho trovato moltissime referenze su come gestire DLL native in OSGi, ma nessuna che indirizzi i file associati a un bundle che devono essere presenti su disco anziché solo recuperabili attraverso il classpath.Includere risorse aggiuntive con i bundle OSGi
Stavo pensando che potrei includere i file dipendenti e dipendenti direttamente nell'archivio del bundle e quindi estrarlo a livello di codice in qualche directory quando viene avviato il pacchetto. L'altra opzione che posso pensare è quella di mettere da qualche parte l'eseguibile e impostare una proprietà di sistema che punta ad esso o qualcosa del genere, ma voglio mantenere la configurazione al minimo.
Una soluzione che non è specifica per una particolare implementazione OSGi sarebbe bella, ma in caso contrario, sto usando Equinox.
Grazie!
OSGi Service Platform Versione base Release 4 versione 4.3 fornisce ['BundleContext.getDataFile (String)'] (https://osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html#getDataFile% 28java.lang.String% 29), che potrebbe essere appropriato. –