Чего я пытаюсь достичь
Использование модульной системы netbeans для подготовки приложения для нас, так как мы реализуем модули в OSGi, используя декларативные сервисы через apache felix. Вот настройка модуля:
- Модуль A - Обеспечивает обслуживание A и B
- Модуль B - Предоставляет услуги C, Справочные службы A и B
- Модуль C - Обеспечивает обслуживание D, управляет установкой модулей A и B
- Модуль D - Справочная служба D и B.
Модуль C устанавливает модули с помощью следующего кода:
BundleContext context = FrameworkUtil.getBundle(class).getBundleContext();
Bundle tcp = context.installBundle("file:Location");
tcp.start();
Где все устанавливается и запускается без ошибок. Однако заявленные ссылки не связаны с услугами.
Для получения более подробной информации о том, как все держится вместе, я добавил код в github https://github.com/jonaslagoni/server. Не забудьте изменить строки в файле: модуль C, dk.sdu.ace.dp.Controller, строка 27-28 для расположение модулей B и A.
- Модуль A - это «TCP-сервер OSGi Bundle»
- Модуль B - «Игровой мир OSGi Bundle»
- Модуль C - это «Зависимый контроллер OSGi Bundle»
- Модуль D - это «Пакет OSGi Server Engine».
То, что я пробовал до сих пор
- На основании активной проблемы Я попытался обеспечить порядок сборки установки, чтобы модуль A устанавливался до модуля B и даже наоборот, просто чтобы быть уверенным. Я даже попытался установить пакет после того, как второй пакет достиг состояния "запущено".
- Вызов обновления модуля B после запуска модуля A.
- Посмотрел, нужно ли мне что-то делать для регистрации и предоставления различных услуг вручную при установке пакетов, я ничего не смог найти или просто не понял ответов ..
- Я пробовал так много глупостей, которые, вероятно, не имеет смысла пытаться описать здесь.
Дополнительные вопросы
Должны ли декларативные службы автоматически связывать провайдеров со ссылками при их установке и запуске через bundlecontext?
Является ли этот способ структурирования приложения даже жизнеспособным, или мы должны пойти другим путем? если да что?