| Summary: | [R5] Improve support for multiple cardinality and uses constraints on generic capabilities | ||
|---|---|---|---|
| Product: | [Eclipse Project] Equinox | Reporter: | Thomas Watson <tjwatson> |
| Component: | Framework | Assignee: | Thomas Watson <tjwatson> |
| Status: | RESOLVED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | tdiekman |
| Version: | 3.8.0 Juno | ||
| Target Milestone: | Kepler M3 | ||
| Hardware: | PC | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
|
Description
Thomas Watson
Not for Juno. *** Bug 383361 has been marked as a duplicate of this bug. *** I released a fix and a test with commit: http://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/?id=c4443d18acafe486c4f38ea4ce880a304ba8892f Here is the approach taken: 1) for cardinality:=multiple requirements I do not consider the requirement when permuting over the set of possible solutions checking for a valid class space. 2) the algorithm makes a selection for the providers of all the requirements with 'single' cardinality 3) for 'multiple' cardinality requirements the algorithm checks to see if one or more providers allow for a valid class space and discards all the providers that do not. If the requirement is mandatory then resolution only succeeds if there is at least one provider that can contribute to a valid class space. This approach seems to avoid the explosion of permutations I was fearing would be introduced if we had to permute over all the combination of possible supplier sets for a 'multiple' cardinality requirement. |