Равноденствие:Обновление пакета, потерянного после перезапуска фреймворка
Вопрос
У меня есть работающий фреймворк equinox osgi с кучей запущенных пакетов.Теперь я обновляю пакет с помощью консоли osgi через 'update .(или используйте предоставленный метод:пакет.обновление(url));
Все работает идеально...но если я полностью перезапущу osgi framework, ранее обновленный пакет снова вернется в исходное состояние (как это было до обновления).
Я использую update.configurator eclipse для поиска всех пакетов в каталоге плагинов и их установки, но я думал, что он распознает, был ли обновлен пакет.
Может кто-нибудь намекнуть мне, чего мне не хватает?
спасибо, Майкл Мангенг
Решение
Как вы начинаете Равноденствие?Вы начинаете с -clean (который уничтожит все обновления)?
Обратите внимание, что 'udpate' просто обновляет текущую копию в памяти, а не изменяет какие-либо биты в исходном JAR на диске.Если вы запускаете equinox и передаете старый пакет (но не новый), то он может вернуться в старом состоянии.
P2 несколько мешает, предполагая, что после того, как вы вырезали фрагменты пакета, после этого он остается неизменным - другими словами, P2 эффективно прерывает выполнение bundle.update() в первую очередь.Однако вам, вероятно, следует управлять битами на диске, чтобы, даже если кто-то действительно выполнит очистку, вы получили правильные данные.