Пакеты, переопределенные Karaf FeatureService.installFeatures () - PullRequest
0 голосов
/ 21 декабря 2018

Мы используем Karaf 4.1.7, и при создании дистрибутива Karaf мы упаковываем пакет ядра 2.9.7 Jackson в системный каталог karaf.

И в одном из наших приложений мы используем пакет Jackson-core 2.9.2, который добавляется к функции.Когда мы устанавливаем эту функцию с помощью Karaf FeatureService.installFeature (featureName), она переопределяет существующий пакет 2.9.7 вместо добавления нового пакета.Мы ожидали, что обе версии будут доступны или сосуществуют.

И когда я набираю команду 'list', можно увидеть переопределенную версию пакета 2.9.2 вместо 2.9.7.И еще одна странная вещь, когда мы проверили через bundleContext.getBundles (), я все еще вижу 2.9.7 bundle.А в комплекте кеша я вижу папку version0.1, в которой присутствует новый 2.9.2 jar.

Может ли кто-нибудь предоставить указатели о том, как решить эту проблему или чего нам не хватает здесь.Пожалуйста, дайте нам знать, если вам нужно больше деталей.

Спасибо, Dheeraj

1 Ответ

0 голосов
/ 16 января 2019

Оба экземпляра jackson-core разных версий должны быть установлены в экземпляре karaf и, вероятно, будут решены.Это не получает overidden .Если вы вызываете команду оболочки list (которая по умолчанию разрешается на bundle:list), она выводит все пакеты, имеющие начальный уровень OSGi, равный или более 50. Первая строка показывает это:

karaf@root()> list
START LEVEL 100 , List Threshold: 50

Таким образом, первый установленный пакет может быть пропущен.Уменьшение порогового уровня начального уровня пакета до 0 с помощью командной строки

bundle:list -t 0

все перечисленные пакеты экземпляра karaf будут перечислены.

Относительно результата bundleContext.getBundles(): только одна версия другойbundle может быть связан, и, таким образом, первая / оригинальная версия связанного пакета будет указана для определенного пакета (context).

...