Как работает обновление пакета OSGi?

Когда пакет обновляется (скажем, чтобы исправить ошибку), что происходит с другими пакетами, которые в настоящее время используют тот, который обновляется?

Скажите, что есть два пакета service и dao . Скажите, что классы в пакете услуг используют классы в пакете dao, когда я запускаю команду для обновления уровня dao. Получит ли класс на уровне обслуживания, использующий код dao, исключение?


Спасибо за ваш ответ .

Я хотел сказать обновлено той же версией.

до тех пор, пока не произойдет обновление пакета, которое включает в себя зависимый пакет.

Операция обновления пакета вызывается пользователем, обновляющим пакет, верно? Скажем, когда пользователь вызывает обновление для обновления пакета dao, класс в службе пакета вызвал метод класса на уровне dao ... что происходит в этом сценарии?

Я нашел этот пост в блоге полезным: http://solutionsfit.com/blog/2008/08/27/osgi-what-modularity-can-do-for-you-part-1/

Из сообщения:

Если мы просто замените пакет пакетом, который включает исправление, контейнер отменит регистрацию старого пакета и зарегистрирует новый пакет. Затем прокси-сервер может обработать перетасовку ссылок и возобновить вызов службы. Это взаимодействие будет практически мгновенным. Ваши клиенты будут полностью забывать о том, что произошло, и вы только что сэкономили своей компании значительную сумму денег (слышу ли я бонус?).

В этом сообщении в блоге вызов функции authorizePayment () был приостановлен до обновления связка есть в наличии. Что произойдет, если элемент управления находится в методе authorizePayment () при обновлении пакета?

23
задан Community 23 May 2017 в 11:46
поделиться