Я создал командный компонент для OSGi и использовал Apache Felix Shell. Одна команда открывает новый поток, который запускает пользовательский интерфейс SWT.
В конфигурации BND для сборки и запуска этого компонента требуется пакет SWT. Проблема сейчас в том, что каждый разработчик должен изменить конфигурацию и включить пакет SWT для своей ОС. Также для каждой ОС нужен другой упакованный Bundle, где единственное отличие — это строка в манифесте jar, для запуска которой требуются другие Bundle.
Есть ли какой-нибудь трюк в BND или OSGi, где я могу установить зависимость сборки или запуска в зависимости от текущей работающей системы?
Что-то вроде «org.eclipse.swt.{OS}.{WS}.{ARCH}» вместо «org.eclipse.swt.win32.win32.x86_64»? Или хотя бы можно в конфиге указать конкретную ОС? Так что, если пользователь использует неправильный пакет, он показывает хорошую ошибку вместо исключения ClassNotFound?
Решение, описанное в другом вопросе (http://stackoverflow.com/questions/2706222/create-cross-platform-java-swt-application/5784073#5784073), у меня не работает или лучше я не знаю, как это можно сделать с помощью BND/OSGi.
Любая идея?