Unable to resolve 1.0: missing requirement [1.0] osgi.wiring.package; (&(osgi.wiring.package=
Asked Answered
S

1

7

I am trying to start one of my bundles, but as soon as I start it, I get the below exception. I am not sure what the problem is.

org.osgi.framework.BundleException: Unresolved constraint in bundle GoldeneyeModellingFramework [1]: Unable to resolve 1.0: missing requirement [1.0] osgi.wiring.package; (&(osgi.wiring.package=com.host.domain.sharedpersonalize.storageservice)(version>=1.0.0)(!(version>=2.0.0)))
    at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3974)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2037)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
    at com.host.personalize.bullseye.InitializeOSGiFramework.installAndStartBundle(InitializeOSGiFramework.java:217)
    at com.host.personalize.bullseye.InitializeOSGiFramework.getBundlesInformation(InitializeOSGiFramework.java:167)
    at com.host.personalize.bullseye.InitializeOSGiFramework$1.run(InitializeOSGiFramework.java:92)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:452)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:328)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:161)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:109)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:192)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:216)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
    at java.lang.Thread.run(Thread.java:736)

Let me tell you how I am doing it- I have launched an OSGi framework by following this tutorial and it works fine, but as soon as I start the bundle, GoldeneyeModellingFramework-

    for (Bundle bundle : installedBundles) {
        bundle.start();
    }

And, I am using the dependency below in my main project which launches an OSGi framework/container:

<dependency>
    <groupId>org.apache.felix</groupId>
    <artifactId>org.apache.felix.framework</artifactId>
    <version>4.2.1</version>
</dependency>
<dependency>
    <groupId>org.ops4j.pax.url</groupId>
    <artifactId>pax-url-mvn</artifactId>
    <version>1.3.6</version>
</dependency>

It always give me the above exception. The Bundle GoldeneyeModellingFramework depends on the maven project GoldeneyeStorageService which includes this package com.host.domain.sharedpersonalize.storageservice.

Below is the Manifest.MF file for GoldenModellingFramework bundle:

Manifest-Version: 1.0
Bnd-LastModified: 1377298131182
Build-Jdk: 1.6.0_26
Built-By: rjamal
Bundle-Activator: com.host.personalize.goldeneye.framework.activator.Activator
Bundle-Description: Managed dependencies and plugins across all Raptor applications.
Bundle-ManifestVersion: 2
Bundle-Name: GoldeneyeModellingFramework
Bundle-SymbolicName: GoldeneyeModellingFramework
Bundle-Version: 1.0.0
Created-By: Apache Maven Bundle Plugin
Export-Package: com.host.personalize.goldeneye.framework.activator;us
 es:="org.osgi.framework,com.host.personalize.goldeneye.modelling.fra
 mework,org.osgi.util.tracker";version="1.0.0",com.host.personalize.
 goldeneye.modelling.framework;uses:="com.host.soaframework.common.except
 ions,org.osgi.framework,com.host.domain.sharedpersonalize.storagese
 rvice";version="1.0.0"
Import-Package: com.host.domain.sharedpersonalize.storageservice;ver
 sion="[1.0,2)",com.host.soaframework.common.exceptions;version="[1.4,2)
 ",org.osgi.framework;version="[1.6,2)",org.osgi.util.tracker;version="[
 1.5,2)"
Originally-Created-By: Apache Maven Bundle Plugin
ServicesURLStrategyVersion: 1.0.0-RELEASE
Tool: Bnd-1.50.0
X-Raptor-Source-Dir: S:\GitViews\GoldeneyeStream\GoldeneyeModellingFram
 ework/src/main/webapp,S:\GitViews\GoldeneyeStream\GoldeneyeModellingFr
 amework/src/main/resources,S:\GitViews\GoldeneyeStream\GoldeneyeModell
 ingFramework

And, below is the pom.xml file for GoldeneyeModellingFramework bundle:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <!-- POM Information about the Project -->
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.host.personalize.goldeneye.modelling.framework</groupId>
    <artifactId>GoldeneyeModellingFramework</artifactId>
    <version>1.0.0</version>
    <!-- Packing Type is bundle for OSGI Library Bundle -->
    <packaging>bundle</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.beans</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>org.springframework.core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.servicemix.bundles</groupId>
            <artifactId>org.apache.servicemix.bundles.cglib</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>4.3.0</version><!--$NO-MVN-MAN-VER$ -->
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.compendium</artifactId>
            <version>4.3.0</version><!--$NO-MVN-MAN-VER$ -->
            <type>jar</type>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.host.personalize.goldeneye</groupId>
            <artifactId>GoldeneyeStorageService</artifactId>
            <version>1.0.0</version>
        </dependency>
    </dependencies>

    <!-- Build Configration -->
    <build>
        <plugins>
            <!-- Apache Felix Bundle Plugin - For Generation of Manifest after Compile 
                phase -->
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <!-- Configuration for generating the Manifest.mf -->
                <configuration>
                    <manifestLocation>src/main/resources/META-INF</manifestLocation>
                    <!-- Manifest Headers which need to customized during manifest generation -->
                    <instructions>
                        <Bundle-SymbolicName>GoldeneyeModellingFramework</Bundle-SymbolicName>
                        <Bundle-Activator>com.host.personalize.goldeneye.framework.activator.Activator</Bundle-Activator>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!-- Configuration of repositories for dependency resolution -->
    <repositories>
        <!-- Raptor Bundles Repository -->
        <!-- This is needed to locate the Raptor Parent project. Other repositories 
            come from the parent. -->
        <repository>
            <id>releases</id>
            <url>http://nxraptor/content/repositories/releases/</url>
            <releases>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>thirdparty</id>
            <url>http://nxraptor/content/repositories/thirdparty/</url>
            <releases>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

Let me know if you need any other files for GoldeneyeStorageService maven project. I am not sure how to fix this problem. Can anyone help me with this?

Some Update:-

Below is the MANIFEST.MF file for GoldeneyeStorageService project-

Manifest-Version: 1.0
Bnd-LastModified: 1377333824248
Build-Jdk: 1.6.0_26
Built-By: rjamal
Bundle-Description: Managed dependencies and plugins across all Raptor a
 pplications.
Bundle-ManifestVersion: 2
Bundle-Name: GoldenlseyeStorageService
Bundle-SymbolicName: GoldenlseyeStorageService
Bundle-Version: 1.0.0
Created-By: Apache Maven Bundle Plugin
Export-Package: com.host.domain.sharedpersonalize.storageservice;use
 s:="com.host.soaframework.common.exceptions,com.host.marketplace.servic
 es.storageservice,com.host.personalize.services.storage.consumer.ge
 n,com.host.personalize.services.storage.consumer,com.host.soaframew
 ork.sif.service,com.host.marketplace.services,com.host.kernel.logger";v
 ersion="1.0.0",com.host.marketplace.services.storageservice;uses:="java
 x.xml.bind.annotation,com.host.marketplace.services,javax.activation";v
 ersion="1.0.0",com.host.personalize.services.storage.consumer;uses:
 ="javax.xml.ws,com.host.marketplace.services.storageservice";version="1
 .0.0",com.host.personalize.services.storage.consumer.gen;uses:="com
 .host.soaframework.common.exceptions,com.host.personalize.services.
 storage.consumer,com.host.soaframework.sif.impl.internal.service,com.eb
 ay.soaframework.sif.service,javax.xml.ws,com.host.marketplace.services.
 storageservice,com.host.soaframework.common.types,com.host.soaframework
 .common.impl.internal.schema,javax.xml.namespace,com.host.soaframework.
 common.registration";version="1.0.0"
Import-Package: com.host.kernel.logger;version="[1.19,2)",com.host.marke
 tplace.services;version="[1.7,2)",com.host.soaframework.common.exceptio
 ns;version="[1.4,2)",com.host.soaframework.common.impl.internal.schema;
 version="[1.4,2)",com.host.soaframework.common.registration;version="[1
 .4,2)",com.host.soaframework.common.types;version="[1.4,2)",com.host.so
 aframework.sif.impl.internal.service;version="[1.4,2)",com.host.soafram
 ework.sif.service;version="[1.4,2)",javax.activation,javax.xml.bind.ann
 otation,javax.xml.namespace,javax.xml.ws
ServicesURLStrategyVersion: 1.0.0-RELEASE
Tool: Bnd-1.50.0
X-Raptor-Source-Dir: S:\GitViews\GoldenlseyeStream\GoldenlseyeStorageServic
 e/src/main/webapp,S:\GitViews\GoldenlseyeStream\GoldenlseyeStorageService/
 src/main/resources,S:\GitViews\GoldenlseyeStream\GoldenlseyeStorageService
Syllabary answered 24/8, 2013 at 5:47 Comment(0)
C
8

The error message means that your bundle GoldeneyeModellingFramework imports the package com.host.domain.sharedpersonalize.storageservice but no bundle exports that package. Therefore the import cannot be resolved.

You said that bundle GoldeneyeStorageService "includes" that package, but what does "includes" mean?? You need this package to be exported, i.e. listed in the Export-Package header. If the package is included in that bundle but not exported, then it is a private package that cannot be imported by any other bundle.

Cloutman answered 24/8, 2013 at 9:24 Comment(7)
Thanks Neil for the suggestion. By include, I mean, I am using that package in GoldeneyeStorageService project. I have updated my question with the MANIFEST.MF file for GoldeneyeStorageService project. And I think that package is already there in the Export-Package header in GoldeneyeStorageService project... If I am right you are saying this package should be exported in GoldeneyeStorageService MANIFEST.MF file? Correct me If I am wrong..Syllabary
Yes. That manifest looks fine, from just a cursory scan. Is that bundle installed and resolved in the framework?Cloutman
I guess the answer to your question will be No. So that means is, I need to install GoldeneyeStorageService bundle first then I should try installing GoldeneyeModellingFramework? Bcoz right now, I am not installing GoldeneyeStorageService bundle and I am just using it as maven dependency in GoldeneyeModellingFramework pom.xml file.. And If I try installing GoldeneyeStorageService project first then I am getting same exception for different packages..Syllabary
You do need to install them both as bundles, but the order doesn't matter. If you get the same exception for different packages then it means you need a bundle that exports those packages.Cloutman
IF the order doesn't matters then why it is not working at first place when I am trying to install GoldeneyeModellingFramework and also that package is already exported in GoldeneyeStorageService project? I will be opening a new question soon for when I am trying to install GoldeneyeStorageService bundle first then it gives me same exception for different packages.. I understood the whole point you said just now but in that exception, I am not sure what can I do else.. It will make sense when you go through that..Syllabary
It doesn't work because, like you said, the second bundle also has unresolved imports. Please don't open a second question because I've already answered it here, I think. The error message simply means that you need to provide a bundle that exports that package.Cloutman
Yes Neil, it totally makes sense to me. That question is similar to this but it is asking for some other alternative or the way I am thinking will work or not. Please just go through it. And if you still think it is not requried, I will mark that for deletiion.. THis is the questionSyllabary

© 2022 - 2024 — McMap. All rights reserved.