Jens Offenbach created FELIX-4854:
-------------------------------------
Summary: Unable to create consistent wiring when same package is
exported in same version by multiple bundles
Key: FELIX-4854
URL: https://issues.apache.org/jira/browse/FELIX-4854
Project: Felix
Issue Type: Bug
Components: Framework
Affects Versions: framework-4.6.1
Reporter: Jens Offenbach
Fix For: framework-4.8.0
I am confronted with a strange wiring problem in Felix. Actually I am not sure
if this is a problem in the Felix or Equinox framework. The attached test case
shows that there is a differen behaviour in the wiring process between Felix
4.6.1 and Equinox 3.10.2.v20150203-1939 when we have different bundles with
different version that export the same package in the same version:
The OSGi specification says:
The following list defines the preferences, if multiple choices are possible,
in order of decreasing priority:
• A resolved exporter must be preferred over an unresolved exporter.
• An exporter with a higher version is preferred over an exporter with a lower
version.
• An exporter with a lower bundle ID is preferred over a bundle with a higher
ID.
Let us assume that we have BundleA:1.0.0 and BundleB:2.0.0 both exporting the
same package in the same version and we have SampleA and SampleB importing the
package. BundleA gets installed and started, then SampleA. I think SampleA gets
wired to BundleA:1.0.0. Now BundleB:2.0.0 gets installed and started, followed
by SampleB. To which bundle must SampleB be wired? Strict to the OSGi
specification, I would say to BundleB:2.0.0, because it has a higher version
than BundleA because BundleA and BundleB are both resolved. But does it make
sense? I think BundleA:1.0.0 should be preferred because it is already an
active part of the resolution process, but I cannot find anything in the
specification.
Can someone please explain me, what is going on in the attached use case why we
have a different wiring in Felix 4.6.1 and Equinox 3.10.2.v20150203-1939.
The attached demo use case can be executed via:
{code}
mvn clean install -Pfelix
mvn clean install -Pequinox
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)