Как добавить существующие пакеты в качестве декларативных сервисов в OSGI Enroute - PullRequest
0 голосов
/ 07 июня 2019

У меня есть папка с существующими пакетными банками, которые мне нужно использовать в качестве декларативных сервисов.Я знаю, как обращаться с этими типичными плагинами Eclipse и объявить их внутри типичного файла Component.xml в папке OSGI-INF моего проекта плагина, но теперь я хотел бы придерживаться стиля кодирования OSGI Enroute изагрузите мои пакеты как Декларативные Услуги там.Кажется, что сервисы добавляются в сгенерированный Component.xml для вас с помощью OSGI Enroute, когда вы добавляете аннотацию @Component, но я изо всех сил пытаюсь выяснить, как добавить мои уже существующие пакеты в качестве декларативных сервисов, поскольку они неесть аннотации в них, и я не могу изменить их код (плюс у них нет poms).Есть ли какой-то интуитивно понятный способ решения этой проблемы, который мне не хватает?Enroute кажется отличным способом справиться с OSGI.

1 Ответ

0 голосов
/ 09 июня 2019

Если я правильно понял ваш вопрос, то:

  1. У вас есть старые комплекты
  2. Вы не можете изменить код этих пакетов
  3. Сервисы, входящие в эти пакеты, не являются декларативными сервисами (используя аннотацию @Component)
  4. Вы хотите использовать эти сервисы как Декларативные услуги

В этом случае вы можете сами написать файлы XML для декларативных служб:

  1. Добавление нового модуля Maven в ваш проект
  2. Добавить устаревшие комплекты в качестве зависимости
  3. Добавить «рукописные» XML-файлы для этих служб в качестве источников к модулю
  4. Позвольте Maven распаковать старые пакеты
  5. Добавьте «рукописные» XML-файлы в новый пакет с Maven
  6. Обновить файл MANIFEST.MF пакета (при необходимости)
  7. Упакуйте все обратно в комплект OSGi

В конце аннотация @Component просто используется для создания файлов XML во время сборки, описывающей вашу декларативную службу. Если код для этих старых сервисов больше не меняется, было бы разумно написать файлы XML вручную.

...