2015-02-11 4 views
1

В декларативных службах можно настроить политику конфигурации компонента (службы) на «REQUIRE», чтобы сделать ее зависимой от существования определенного файла конфигурации. это означает, что служба не будет создана до тех пор, пока конфигурация с соответствующим «pid» не будет доступна в config admin.OSGi Declarative Services ConfigurationPolicy.REQUIRE эквивалент в проекте aries

Есть ли аналогичное решение в плане?

Я пробовал фабрику управляемых сервисов, но поскольку мне нужен только один экземпляр моего сервиса, я не знаю, как убедиться, что фабрика создает только один экземпляр.

ответ

0

Я сам искал ответ на этот вопрос и ничего не нашел кроме этого (очень старого) вопроса!).

Мое решением является

  1. создать фиктивный декларативный сервис с configurationPolicy=REQUIRE
  2. объявить <reference ...'/> к этой фиктивной службе в плане (изготовление Blueprint ждать до тех пор, пока не начнется моя фиктивная служба.

Таким образом, проект не завершает его запуск до тех пор, пока не будет создана соответствующая конфигурация. Он чувствует себя немного взломанным и регистрирует бесполезную услугу.