Что на самом деле делают эти команды OSGi? - PullRequest
9 голосов
/ 07 декабря 2011

Используя Felix / Equinox, что делать под капотом?

osgi:install
osgi:refresh
osgi:resolve
osgi:restart
osgi:update

Есть ли где-нибудь схема конечного автомата или более краткая документация?

Ответы [ 2 ]

19 голосов
/ 07 декабря 2011

Лучшей документацией для этого является Спецификация ядра OSGi .Номера разделов и страниц ниже относятся к версии 4.3 (апрель 2011 г.) спецификации.

osgi:install означает установку пакета из файла или потока и сопоставление его с методом BundleContext.installBundle в API.См. Раздел 4.4.3 на стр. 90.

osgi:refresh выполняет операцию «обновления пакетов», которая позволяет перезаписывать экспорт / импорт после установки или обновления набора пакетов.Например, пакеты, которые в настоящее время связаны с конкретным экспортером пакета , могут быть перезаписаны во вновь установленный пакет, который экспортирует тот же пакет.См. Раздел 7.6.1, стр. 148.

osgi:resolve аналогичен обновлению, но он связывает только те пакеты, которые в данный момент находятся в состоянии INSTALLED.Т.е. он будет не перемонтировать существующие провода, принадлежащие связкам, которые уже находятся в состоянии RESOLVED.

osgi:restart останавливает и перезапускает конкретную связку.Это не приводит к обновлению реализации пакета, оно просто останавливается и запускается.См. Раздел 4.4.5 на стр. 91 и 4.4.7 на стр. 95.

osgi:update запросы на обновление одного пакета (т. Е. Перезагрузку из исходного местоположения).Это может включать в себя остановку, повторное разрешение и запуск пакета в зависимости от того, в каком состоянии он находился до обновления.См. Раздел 4.4.9 на стр. 95.

Диаграмма состояний для всех состояний пакета OSGi приведена в разделе 4.4.2 (рисунок 4.4) на стр. 90.

2 голосов
/ 07 декабря 2011

Подробно о том, что делают команды оболочки Felix, вы можете просто взглянуть на их исходный код, по адресу http://svn.apache.org/repos/asf/felix/trunk/shell/src/main/java/org/apache/felix/shell/impl/ - большинство из них короткие и простые.

...