Commit ec6b508
committed
Improve substitution package handling and filter uses locally
Currently substitution packages handling can lead to a situation where
the number of performed permutation increase considerably and the
finding of a solution takes very long. In some cases it even times out
and results in a failed resolve state.
This now is improved by the following changes:
When a permutation is removed from the stack, every requirement is
checked if it is a substitution package and then resolve it to either
external or internal case first:
- if more candidates exits for this requirement a permutation is added
to account for this alternative solution
- now all other providers except the current one are dropped to make
this a single provider as the choice can not be reverted and therefore
other permutations in this path will be invalid
- then it must be checked if the package resolves to an external
provider in which case we need to drop the exported package capabilities
of this bundle for the given package
- after that all requirements are checked if they have only a single
provider (what can happen independently or as part of the resolving to
either external or internal) the use constraints are checked if they are
in conflict with a currently selected provider and dropping such invalid
choices
- finally after that we check the package space consistency (that is a
far more expensive check) what probably will result in more permutations
created and checked until we found the best result to use1 parent 2d20188 commit ec6b508
File tree
8 files changed
+285
-14
lines changed- bundles
- org.eclipse.osgi.tests
- src/org/eclipse/osgi/tests/container
- test_files/containerTests
- org.eclipse.osgi/felix/src/org/apache/felix/resolver
- util
8 files changed
+285
-14
lines changedLines changed: 6 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1093 | 1093 | | |
1094 | 1094 | | |
1095 | 1095 | | |
1096 | | - | |
| 1096 | + | |
1097 | 1097 | | |
1098 | 1098 | | |
1099 | 1099 | | |
| |||
3940 | 3940 | | |
3941 | 3941 | | |
3942 | 3942 | | |
3943 | | - | |
| 3943 | + | |
3944 | 3944 | | |
3945 | 3945 | | |
3946 | 3946 | | |
| |||
4369 | 4369 | | |
4370 | 4370 | | |
4371 | 4371 | | |
4372 | | - | |
| 4372 | + | |
4373 | 4373 | | |
4374 | 4374 | | |
4375 | 4375 | | |
4376 | 4376 | | |
4377 | 4377 | | |
4378 | 4378 | | |
4379 | | - | |
| 4379 | + | |
4380 | 4380 | | |
4381 | 4381 | | |
4382 | 4382 | | |
| |||
4388 | 4388 | | |
4389 | 4389 | | |
4390 | 4390 | | |
4391 | | - | |
| 4391 | + | |
4392 | 4392 | | |
4393 | 4393 | | |
4394 | 4394 | | |
4395 | 4395 | | |
4396 | 4396 | | |
4397 | | - | |
| 4397 | + | |
4398 | 4398 | | |
4399 | 4399 | | |
4400 | 4400 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
Lines changed: 3 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
56 | 57 | | |
57 | 58 | | |
58 | 59 | | |
59 | | - | |
| 60 | + | |
| 61 | + | |
60 | 62 | | |
61 | 63 | | |
62 | 64 | | |
| |||
Lines changed: 151 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| |||
56 | 57 | | |
57 | 58 | | |
58 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
59 | 66 | | |
60 | 67 | | |
61 | 68 | | |
| |||
728 | 735 | | |
729 | 736 | | |
730 | 737 | | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
731 | 809 | | |
732 | 810 | | |
733 | 811 | | |
| |||
983 | 1061 | | |
984 | 1062 | | |
985 | 1063 | | |
986 | | - | |
| 1064 | + | |
987 | 1065 | | |
988 | 1066 | | |
989 | 1067 | | |
| |||
1182 | 1260 | | |
1183 | 1261 | | |
1184 | 1262 | | |
1185 | | - | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
1186 | 1268 | | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
1187 | 1277 | | |
1188 | 1278 | | |
1189 | 1279 | | |
| |||
1196 | 1286 | | |
1197 | 1287 | | |
1198 | 1288 | | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
1199 | 1348 | | |
1200 | 1349 | | |
1201 | 1350 | | |
| |||
Lines changed: 16 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
| |||
201 | 202 | | |
202 | 203 | | |
203 | 204 | | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
204 | 220 | | |
0 commit comments