Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
framework-1.0.0
-
None
Description
There are two issues with the resolver of the current OBR implementation:
1) It does not try each possible composition
Suppose we want to install bundle A, and A has a requirement which can be fulfilled by bundle B or C. B itself has a requirement which can be fulfilled by bundle X and bundle C has a requirement which can be fulfilled by bundle Y.
A-B-X
A-C-Y
Suppose now that bundle X is not available (or can not be installed on the local platform)
A-B-
A-C-Y
composition A-C-Y is now a correct composition, but the current implementation will notice that bundle B can not be resolved and will then stop. OBR will not always detect the correct composition.
2) Bundles are not always updated
Suppose we want to install bundle A which has a requirement which can be fulfilled by bundle B.
A-B
An old version of bundle B is already locally installed on the platform but a newer version is available on the repository server. The current OBR implementation will detect that the requirement of A can be met by the locally installed old version of B and it will not check for a newer version on the repository server.
I attached a fixed version of ResolverImpl.java in which the described issues are fixed.
This is my first issue submit ever. Feedback to make it better is appreciated.