-
Notifications
You must be signed in to change notification settings - Fork 65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Filter use-constraint violating providers of packages #607
Conversation
This is how it looks for example before the filtering:
as one can see the provider chosen for
this then results in the following filtered candidate set:
|
21847e4
to
5b7de35
Compare
I now added a system property to disable the feature just in case it causes problems somewhere. |
bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/Candidates.java
Outdated
Show resolved
Hide resolved
bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/Candidates.java
Outdated
Show resolved
Hide resolved
bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/Candidates.java
Outdated
Show resolved
Hide resolved
5b7de35
to
63b2053
Compare
3168237
to
09f19aa
Compare
Rebased and build is now green again! |
09f19aa
to
e083009
Compare
@tjwatson I have now reworked this to pass the debugging through the logger, that way we can reuse Equinox formatting and it can be enabled/disabled by the usual debugging properties and makes the using code much cleaner. |
e083009
to
7ddbc24
Compare
6e3bb41
to
23aa376
Compare
I plan to merge this if there are no further comments/concerns so we have enough time to find possible issues. |
81e4423
to
a5715d6
Compare
If a provider is chosen for a given requirement this can imply that also other providers are now become invalid, currently the resolver simply checks the whole state and adds new permutations what is rather expensive. This now adds an additional local filtering step that checks for the chosen provider for the requirement and discards any incompatible provider for other packages in the same resource. As a result for a small testcase this saves 3 out of 23 (~ 10%) uses permutations.
a5715d6
to
52f09fc
Compare
This change causes API error
|
Fix: #673 |
If a provider is chosen for a given requirement this can imply that also other providers are now become invalid, currently the resolver simply checks the whole state and adds new permutations what is rather expensive.
This now adds an additional local filtering step that checks for the chosen provider for the requirement and discards any incompatible provider for other packages in the same resource.
As a result for a small testcase this saves 3 out of 23 (~ 10%) uses permutations.