Pracuję nad pakietem OSGi, który implementuje usługę jako wrapper wokół natywnego pliku wykonywalnego. Oznacza to, że usługa uruchamia plik wykonywalny z ProcessBuilder
, przekazuje mu pewne dane i pobiera wynik. Moje pytanie dotyczy najlepszego sposobu na spakowanie tego pakietu. Natywny plik wykonywalny zawiera wiele zależnych plików danych, które wszystkie muszą znajdować się na dysku, aby narzędzie mogło działać. Znalazłem wiele referencji dotyczących radzenia sobie z natywnymi bibliotekami DLL w OSGi, ale żaden z nich nie odnosi się do plików powiązanych z pakietem, które muszą być obecne na dysku, a nie tylko można je odzyskać za pośrednictwem ścieżki klas.W tym dodatkowe zasoby z pakietami OSGi
Wydawało mi się, że mogę dołączyć do plików opcjonalnych i zależnych bezpośrednio w archiwum pakunku, a następnie programowo wyodrębnić do jakiegoś katalogu, gdy pakiet zostanie uruchomiony. Inną opcją, o której myślę, jest umieszczenie pliku wykonywalnego gdzieś i ustawienie właściwości systemu, które wskazuje na to lub coś takiego, ale chcę zachować konfigurację do minimum.
Rozwiązanie, które nie jest specyficzne dla konkretnej implementacji OSGi byłoby miłe, ale jeśli nie, używam Equinox.
Dzięki!
Specyfikacja rdzenia platformy usług OSGi, wersja 4, w wersji 4.3 zawiera ['BundleContext.getDataFile (String)'] (https://osgi.org/javadoc/r4v43/core/org/osgi/framework/BundleContext.html#getDataFile% 28java.lang.String% 29), które mogą być odpowiednie. –