The headers in karaf list ranges. Here are the Imports for the "Bundle A":


merlin.rest (484)
-----------------

Bundle-ManifestVersion = 2
Bundle-SymbolicName = merlin.rest
Bundle-Version = 2.0.0.SNAPSHOT
Bundle-Name = merlin.rest

Import-Service =
com.inovexcorp.merlin.explore.MerlinExploreService;multiple:=false,
com.inovexcorp.merlin.service.impl.ThreatService;multiple:=false

Import-Package =
com.inovexcorp.merlin.explore;version="[2.0,3)",
com.inovexcorp.merlin.service.impl;version="[2.0,3)",
javax.ws.rs;version="[2.0,3)",
javax.ws.rs.core;version="[2.0,3)",
org.osgi.service.blueprint;version="[1.0.0,2.0.0)"



merlin.rest (486)
-----------------

Bundle-ManifestVersion = 2
Bundle-SymbolicName = merlin.rest
Bundle-Version = 1.1.0.SNAPSHOT
Bundle-Name = merlin.rest

Import-Service =
com.inovexcorp.merlin.explore.MerlinExploreService;availability:=optional;multiple:=false,
com.inovexcorp.merlin.service.impl.ThreatService;availability:=optional;multiple:=false

Import-Package =
com.inovexcorp.merlin.explore;version="[1.0,2)",
com.inovexcorp.merlin.service.impl;version="[1.0,2)",
javax.ws.rs;version="[2.0,3)",
javax.ws.rs.core;version="[2.0,3)",
org.osgi.service.blueprint;version="[1.0.0,2.0.0)"



com.inovexcorp.merlin.explore and com.inovexcorp.merlin.service.impl are
"Bundles B and C" Here are the exports:


explore (480)
-------------


Export-Package =
com.inovexcorp.merlin.explore;
uses:="org.openrdf.model,
org.openrdf.repository,
org.apache.log4j,
org.openrdf.query,
com.google.gson,
org.apache.commons.collections.map";
version=2.0.0.SNAPSHOT



explore (485)
-------------

Bundle-ManifestVersion = 2
Bundle-SymbolicName = explore
Bundle-Version = 1.1.0.SNAPSHOT
Bundle-Name = explore

Export-Package =
com.inovexcorp.merlin.explore;
uses:="org.openrdf.model,
org.openrdf.repository,
org.apache.log4j,
org.openrdf.query,
com.google.gson";
version=1.1.0.SNAPSHOT



merlin.service.impl (479)
-------------------------


Bundle-ManifestVersion = 2
Bundle-SymbolicName = merlin.service.impl
Bundle-Version = 2.0.0.SNAPSHOT
Bundle-Name = merlin.service.impl

Export-Package =
com.inovexcorp.merlin.service.impl;
uses:="com.google.common.base,
javax.ws.rs.core,
org.openrdf.repository,
org.openrdf.model,
org.apache.log4j,
org.openrdf.query,
com.google.gson";
version=2.0.0.SNAPSHOT



merlin.service.impl (487)
-------------------------


Bundle-ManifestVersion = 2
Bundle-SymbolicName = merlin.service.impl
Bundle-Version = 1.0.0.SNAPSHOT
Bundle-Name = merlin.service.impl

Export-Package =
com.inovexcorp.merlin.service.impl;
uses:="javax.ws.rs.core,
com.google.common.base,
org.openrdf.model,
org.openrdf.repository,
com.google.gson,
org.openrdf.query";
version=1.0.0.SNAPSHOT





On Fri, Jul 10, 2015 at 5:45 PM, Guillaume Nodet <[email protected]> wrote:

> You need to use version ranges when you import packages.  This will ensure
> a compatible package will be used and avoid any class cast exceptions.
> Your use case is quite simple and should clearly not cause any issue if
> you use correct version ranges.
>
> 2015-07-10 21:07 GMT+02:00 Bryan Miller <[email protected]>:
>
>> Hello,
>>
>> I am trying to deploy multiple version of two sets of bundles and am
>> running into issues.
>> Bundle A version 1.0.0-SNAPSHOT requires:
>> Bundle B version [1,2)
>> Bundle C version [1,2)
>>
>> Bundle A version 2.0.0-SNAPSHOT requires:
>> Bundle B version [2,3)
>> Bundle C version [2,3)
>>
>>
>> When I deploy Bundle A, B, and C version 1.0.0-SNAPSHOT and Bundle A,B,
>> and C version 2.0.0-SNAPSHOT, Bundle A, regardless of version, will only
>> wire to Bundle B or C if it was the most recently deploye bundle.
>> For example if I deploy
>> Bundle A(1.0.0-SNAPSHOT), then
>> Bundle B (1.0.0-SNAPSHOT), then
>> Bundle C(1.0.0-SNAPSHOT), then
>> Bundle A(2.0.0-SNAPSHOT), then
>> Bundle B(2.0.0-SNAPSHOT), then
>> Bundle C(2.0.0-SNAPSHOT)
>>
>> This causes Bundle A(2.0.0-SNAPSHOT) to work, and Bundle
>> A(1.0.0-SNAPSHOT) to give class cast exceptions. This also happens in
>> reverse, if the 2.0.0-SNAPSHOT bundles are deployed first, the
>> 1.0.0-SNAPSHOT bundles work and the 2.0.0-SNAPSHOT bundles have class cast
>> exceptions.
>>
>> --
>>
>> *Bryan Miller*
>>
>>
>>
>


-- 

*Bryan Miller*

Reply via email to