Загрузка пакета в felix не удалась из-за зависимости от самого себя

Я явно придуриваюсь, но не вижу проблемы:

Я пытаюсь загрузить бандл в Karaf 4 M3 и получаю вот такую ​​ошибку

org.osgi.framework.BundleException: Unable to resolve package-core [50](R 50.0): missing requirement [package-core [50](R 50.0)] osgi.wiring.package; (osgi.wiring.package=bi.package.internal) Unresolved requirements: [[package-core [50](R 50.0)] osgi.wiring.package; (osgi.wiring.package=bi.package.internal)]

Мой манифест генерируется Maven и выглядит так:

Manifest-Version: 1.0
Export-Package: bi.package.core.repository;uses:="bi.package.core.repository.objects";version="4.0.0.SNAPSHOT",bi.package.core.repository.objects;version="4.0.0.SNAPSHOT"
Private-Package: bi.package.internal.*
Built-By: bugg
Tool: Bnd-0.0.255
Bundle-Name: package-core
Created-By: Apache Maven Bundle Plugin
Build-Jdk: 1.7.0_65
Bundle-Version: 4.0.0.SNAPSHOT
Bnd-LastModified: 1435161944129
Bundle-ManifestVersion: 2
Bundle-Activator: bi.package.internal.ExampleActivator
Import-Package: bi.package.core.repository;version="4.0.0.SNAPSHOT",bi.package.core.repository.objects;version="4.0.0.SNAPSHOT",bi.meteorite.internal
Bundle-SymbolicName: package-core

Значит, кажется, что он терпит неудачу, потому что он зависит от самого себя? Ясно, что это неправильно, так где же я напутал?


person magicaltrout    schedule 24.06.2015    source источник


Ответы (1)


Ваша проблема вот в чем:

Import-Package: ... bi.meteorite.internal

вы импортируете пакет, который не экспортируется, и вы фактически объявили его закрытым:

Private-Package: bi.package.internal.*

Если это действительно необходимо, обычно лучше не импортировать экспортированные пакеты. Это полезно только в том случае, если вы экспортируете встроенную зависимость, которая может быть заменена более новой версией как отдельная.

person Achim Nierbeck    schedule 25.06.2015
comment
Интересный. Спасибо, Ахим, я кое-что прочитал, в котором говорилось, что это хороший дизайн для повторного импорта ваших собственных экспортированных пакетов, может быть, я неправильно его понял, и строка импорта генерируется maven, поэтому бог знает, почему он импортирует частный пакет. Я взгляну! - person magicaltrout; 25.06.2015