Я строю систему кэширования в своем приложении OSGI, где моя первоначальная мысль была, нормально, когда зарегистрирована служба. Я хочу применить кеширование, я просто проксирую эту службу и зарегистрирую прокси-сервер с помощью очень высокий рейтинг обслуживания.Динамизм сервисов при использовании чертежа Овна
Это почти работает, в зависимости от того, в каком порядке запущены мои пучки. Если потребитель запускается последним, все работает, а также, если я остановлю комплект кеширования, потребитель откажется от исходной реализации BUT, если я перезапущу пакет кэширования, тогда потребитель не получит прокси-версию службы.
Чтобы сделать простой пример для доказательства этого, я сделал простой пакет, который регистрирует службу знаний вручную с гораздо более высоким рейтингом (т. Е. Не создавая прокси и т. Д.), И проблема все еще остается, когда более высокий рейтинг начатый потребитель все еще использует услугу с более низким рейтингом.
Выполняется ли динамизм чертежа только при определенных обстоятельствах?
- Первоначальная проводка -> выбрать самый высокий рейтинг обслуживания
- Когда проводной услуги исчезают -> выбрать самый высокий рейтинг сервиса
- Когда появится новая услуга -> ничего не делают
Есть ли способ получить поведение 1 и 2 также в случае 3: d?
Или есть лучший способ добиться того, что я пытаюсь сделать? То есть. с HookEvent или аналогичным?
Благодаря
EDIT: Я решил эту конкретную проблему путем обновления используемых комплектов после регистрации прокси, который, кажется, чтобы обновить токопроводящую службу.
Bundle[] usingBundles = reference.getUsingBundles();
for(.....)
{
b.update();
}