отсутствует требование osgi.wiring.package; (

#java #maven #osgi #apache-karaf

Вопрос:

Это мой первый проект, в котором я пытаюсь использовать контейнер Karaf и OSGI.

Последняя версия osgi.framework-1.10.0, и она должна соответствовать. В библиотеках есть пакет osgi.framework, а в manifest.mf есть строка

 "Export-Package: org.osgi.dto;version="1.1.1",org.osgi.framework;versio
 n="1.10""  
 

У меня ошибка при запуске пакета:

 bundle:start 55
Error executing command: Error executing command on bundles:
        Error starting bundle 55: Unable to resolve SuccessFactorsIntegration [55](R 55.0): missing requirement [SuccessFactorsIntegration [55](R 55.0)] osgi.wiring.package; (amp;(osgi.wiring.package=org.osgi.framework)(version>=1.10.0)(!(version>=2.0.0))) Unresolved requirements: [[SuccessFactorsIntegration [55](R 55.0)] osgi.wiring.package; (amp;(osgi.wiring.package=org.osgi.framework)(version>=1.10.0)(!(version>=2.0.0)))]
 

pom.xml

 <modelVersion>4.0.0</modelVersion>
<groupId>by.MVasilevskiy</groupId>
<artifactId>SuccessFactorsIntegration</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SuccessFactorsIntegration</name>
<packaging>bundle</packaging>

<dependencies>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>osgi.core</artifactId>
      <version>8.0.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-core</artifactId>
    <version>3.4.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>5.1.2</version>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Bundle-SymbolicName>
                        ${project.artifactId}
                    </Bundle-SymbolicName>
                    <Bundle-Name>
                        ${project.name}
                    </Bundle-Name>
                    <Bundle-Version>
                        ${project.version}
                    </Bundle-Version>
                    <Bundle-Activator>
                        ${project.groupId}.Activator
                    </Bundle-Activator>
                    <Private-Package>
                        ${project.groupId}
                    </Private-Package>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>
<properties>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
</properties>
 

MANIFEST.MF в user.m2репозиторииbyMVasilevskiyИнтеграция факторов успеха.0.1-СНИМОК

 Created-By: Apache Maven Bundle Plugin
Export-Package: by.MVasilevskiy;uses:="org.apache.camel.builder,org.osgi.fra
 mework";version="0.0.1.SNAPSHOT",by.MVasilevskiy.processor;uses:="org.apach
 e.camel";version="0.0.1.SNAPSHOT"
Import-Package: by.MVasilevskiy,by.MVasilevskiy.processor,javax.xml.namespace,ja
 vax.xml.parsers,javax.xml.xpath,org.apache.camel;version="[3.4,4)",org.
 apache.camel.builder;version="[3.4,4)",org.apache.camel.impl;version="[
 3.4,4)",org.apache.camel.model;version="[3.4,4)",org.osgi.framework;ver
 sion="[1.10,2)",org.w3c.dom
Require-Capability: osgi.ee;filter:="(amp;(osgi.ee=JavaSE)(version=11))"
Tool: Bnd-5.1.1.202006162103
 

Часть org.osgi.framework.system.packages из config.properties

 # Framework config properties.
#
org.osgi.framework.system.packages= 
 org.osgi.dto;version="1.1",
 org.osgi.resource;version="1.0",
 org.osgi.resource.dto;version="1.0";uses:="org.osgi.dto",
 org.osgi.framework;version="1.9",
 org.osgi.framework.dto;version="1.9";uses:="org.osgi.dto",
 org.osgi.framework.hooks.bundle;version="1.1";uses:="org.osgi.framework",
 org.osgi.framework.hooks.resolver;version="1.0";uses:="org.osgi.framework.wiring",
 org.osgi.framework.hooks.service;version="1.1";uses:="org.osgi.framework",
 org.osgi.framework.hooks.weaving;version="1.1";uses:="org.osgi.framework.wiring",
 org.osgi.framework.launch;version="1.2";uses:="org.osgi.framework",
 org.osgi.framework.namespace;version="1.1";uses:="org.osgi.resource",
 org.osgi.framework.startlevel;version="1.0";uses:="org.osgi.framework",
 org.osgi.framework.startlevel.dto;version="1.0";uses:="org.osgi.dto",
 org.osgi.framework.wiring;version="1.2";uses:="org.osgi.framework,org.osgi.resource",
 org.osgi.framework.wiring.dto;version="1.3";uses:="org.osgi.dto,org.osgi.resource.dto",
 org.osgi.service.condpermadmin;version="1.1.1";uses:="org.osgi.framework,org.osgi.service.permissionadmin",
 org.osgi.service.packageadmin;version="1.2";uses:="org.osgi.framework",org.osgi.service.permissionadmin;version="1.2",
 org.osgi.service.resolver;version="1.1";uses:="org.osgi.resource",
 org.osgi.service.startlevel;version="1.1";uses:="org.osgi.framework",
 org.osgi.service.url;version="1.0",
 org.osgi.util.tracker;version="1.5.2";uses:="org.osgi.framework",
 org.apache.karaf.version;version="4.3.2",
 org.apache.karaf.jaas.boot.principal;uses:=javax.security.auth;version="4.3.2",
 org.apache.karaf.jaas.boot;uses:="javax.security.auth,javax.security.auth.callback,javax.security.auth.login,javax.security.auth.spi,org.osgi.framework";version="4.3.2",
 org.apache.karaf.info;version="4.3.2",
 ${jre-${java.specification.version}}
 

Комментарии:

1. Вы можете проверить org.osgi.framework.system.packages свойство в файле конфигурации Karaf ( etc/config.properties )? Он содержит пакеты, предоставляемые базовым системным пакетом. Также проверьте, какая версия этого пакета порвидирована в контейнер: inspect cap osgi.wiring.package и найдите osgi.wiring.package; org.osgi.framework ... required by: ...

2. — добавил я config.properties . org.osgi.framework;version="1.9" В этом файле есть строка, поэтому вы можете дать мне совет, как обновить osgi.framework его до версии 1.10.0? Я не нашел подробного описания всех команд.

3. Новейший выпуск Karaf (v4.3.2) использует ядро OSGi R7 (версия 7.0.0 ), поэтому я думаю, что вам следует использовать <version>7.0.0</version> в качестве зависимости или (я думаю) подождать Karaf 5.