[ https://issues.apache.org/jira/browse/FELIX-1792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12788162#action_12788162 ]
Richard S. Hall commented on FELIX-1792: ---------------------------------------- It is really difficult for me to say if the above scenario description is correct or not, since I am not able to reproduce by creating bundles for the above three manifests. I mentioned two situations above where it might choose a lower version instead of a higher version; however, I do see a potential issue when selecting the "best candidate". In that case, we are selecting based on the highest version of the candidate, not the highest version of the capability. Thus, if bundle2 is version 1.0.0 and bundle3 is version 2.0.0, then we will select bundle3. I don't recall if this was the original intent of selecting the best candidate, but my intuition tells me this is a logical error. It makes more sense to find the matching capability from each resource, then select the capability with the highest version. I will try to create a patch for this, but it is not clear to me if this will address your scenario or not. > Felix OBR seems to just randomly choose one of the satisifed bundles if more > than one bundle meets the requirement > ------------------------------------------------------------------------------------------------------------------ > > Key: FELIX-1792 > URL: https://issues.apache.org/jira/browse/FELIX-1792 > Project: Felix > Issue Type: Bug > Components: Bundle Repository (OBR) > Affects Versions: bundlerepository-1.4.2 > Environment: n/a > Reporter: david small99 > > I have one bundle bundle1, which imports a package called com.obr.bundle > Bundle1's manifest: > Manifest-Version: 1.0 > Ant-Version: Apache Ant 1.7.0 > Bundle-ManifestVersion: 2 > Bundle-Name: Bundle Plug-in > Bundle-SymbolicName: com.obr.bundle1 > Bundle-Version: 1.0.0 > Export-Package: com.obr.bundle1 > Import-Package: com.obr.bundle;version="[1.2.0.999,3.2.2.bz]" > There are two bundles in my repositories, bundler2 and bundle 3. Both of them > export package com.obr.bundle. Below are their manifest files. > Bundle2 > Manifest-Version: 1.0 > Ant-Version: Apache Ant 1.7.0 > Bundle-ManifestVersion: 2 > Bundle-Name: Bundle Plug-in > Bundle-SymbolicName: com.obr.bundle2 > Bundle-Version: 1.0.0 > Bundle-Vendor: xxx > Import-Package: a.b.c > Export-Package: com.obr.bundle;version=3.2.2.blah > Bundle3: > Manifest-Version: 1.0 > Ant-Version: Apache Ant 1.7.0 > Bundle-ManifestVersion: 2 > Bundle-Name: Bundle Plug-in > Bundle-SymbolicName: com.obr.bundle3 > Bundle-Version: 1.0.0 > Import-Package: a.b.c > Export-Package: com.obr.bundle;version=3.1 > As you can see, both bundle2 and bundle3 meet the requirements of bundle1. I > hope the highest package version, which is bundle2, is chosen by felix obr. > However, sometimes bundle 3 was chosen instead of bundle2. The behaviour is > random. > Am I right to say that the Felix obr runtime just picks the first bundle that > meets the requirements and then stop searching for any more eligible bundles? > Thanks -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.