Блокировка зависимости между пакетами OSGI + Spring-DM

Как следует из названия, у меня проблемы с OSGI + Spring DM.

В моем проекте проекта у меня есть пакет A, который требует службы SVB и экспортирует службы SVA. Пакет B требует svA и экспортирует svB (среди прочего, конечно). Похоже, что это вызывает тупик, так как кажется, что оба пакета ждут, пока другой подключится к сети. Возможен ли такой тупик с Spring DM? Есть ли этому решение?

1 ответ

Решение

Это не похоже на проблему с Spring-DM, скорее вы сами настроили этот тупик: A зависит от B, B зависит от A, поэтому никто не может выполнить какую-либо работу. Чтобы выйти из этого, вам, вероятно, нужно изменить свой дизайн и разрешить запуск одного из A или B без другого. Между тем, другой должен иметь встроенную ленивую загрузочную логику (это будет ваша работа) и продолжить последовательность запуска, когда другой сам подключится к сети.

С помощью декларативной службы OSGi вы можете объявить зависимость от службы, но разрешить ее отсутствие во время запуска (сделайте это с помощью параметра мощности).

Другие вопросы по тегам