В настоящее время я разрабатываю приложение, которое имеет серверную часть на основе JavaEE 6.0 на JBoss 7.1 и клиент на основе Eclipse RCP 3.7.Как разделить пакеты OSGi между JBoss и Eclipse RCP?
Для простого пакета OSGi для общего API я уже столкнулся с проблемами из-за некоторых различий в версиях и depdencenies. API требует «org.osgi.framework. » для активатора пучка и «org.slf4j.» для API регистрации slf4j.
В настоящее время мой клиент работает очень хорошо, но JBoss говорит мне, что ожидаемая версия импорта OSGi и также импорта для SLF4J не подходят ...
я там лучшая практика для обмена OSGi расслоения между Eclipse и JBoss? Нужно ли возвращаться к простым объявлениям об импорте и экспорте, или я могу как-то использовать Require-Bundle? Нужно ли мне создавать пакеты совместимости для JBoss, чтобы запустить его? Каков наилучший способ здесь?
ОБНОВЛЕНИЕ Я решил проблему исключительно с помощью Import-Package. Для зависимости, такой как org.osgi.framework, используется версия = "0.0", чтобы объяснить, что это не имеет значения. :-(Это не очень безопасно, но в настоящее время я не вижу другой вариант. Есть ли лучший способ?
UPDATE 2 Кроме того, нужно обратить внимание на осуществление правильного Verion в OSGi Framework. JBoss 7.1.x реализован только OSGi 4.2, который не имеет поддержки для извлечения сервисов типов.
Я сделал это, как вы сказали. Это больше усилий для поддержания, но на самом деле это работает. Для org.osgi.framework мне нужно использовать версию 0.0 из-за версии системного пакета, которая также равна 0.0.0. :-(Но все остальное, похоже, работает. –