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)

Reply via email to