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
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.