Пещера Караф против org.apache.felix.bundlerepository

Добрый день.

Я пытаюсь получить преимущества OBR в своем приложении. Я взял Karaf Cave (4.0.0) в качестве реализации OBR и org.apache.felix.bundlerepository (2.0.4) в качестве клиента OBR. Я успешно настроил сам репозиторий, но не могу его правильно использовать. Проблема: когда я устанавливаю пакет через OBR и все его зависимости уже установлены во время выполнения OSGI, он устанавливается успешно. Но если некоторые требования отсутствуют, я получил ошибку "Неудовлетворенные требования", что странно, поскольку я точно знаю, что все ресурсы, которые удовлетворяют этим требованиям, присутствуют в дескрипторе OBR, и все ссылки на них действительны.

Почему они не разрешаются автоматически? Как настроить клиент OBR для работы с Karaf Cave?

Я также попробовал реализацию OBR от Sonatype Nexus (плагин OBR) и обнаружил, что дескриптор OBR, сгенерированный Cave, и дескриптор, сгенерированный Nexus, отличаются. Более того:

  • генерируемый Cave соответствует спецификациям OSGI Compendium
  • генерируемый Nexus нет, но он работает как шарм с org.apache.felix.bundlerepository - проблема не воспроизводится.

Я полностью сбит с толку.

Последовательность шагов для воспроизведения проблемы (воспроизведена на Apache Karaf 4.0.0):

1) Установка пещеры Караф:

feature:repo-add cave
feature:install cave-server cave-http

2) Создание пещерного хранилища:

cave:create-repository test
cave:proxy-repository test file:///path/to/some/local/maven/repo

3) Установите клиент OBR и зарегистрируйте "тестовый" репозиторий пещер от Karaf:

feature:install obr
obr:url-add http://localhost:8181/cave/http/test-repository.xml

4) Попробуйте развернуть некоторые ресурсы OBR с помощью obr:deploy

0 ответов

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