[ 
https://issues.apache.org/jira/browse/FELIX-4497?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Thomas Watson updated FELIX-4497:
---------------------------------

    Attachment: org.apache.felix.resolver.patch

This patch takes an approach that uses two steps:

1) During the prepare phase (end of populate phase) establish a table of 
Capability->Requirement that maps each capability to the requirement that 
potentially could be used to substitute the capability

2) For each permutation: check for substitutes.  If substitutes are found then 
A) create a new permutation that selects the next candidate for the 
substitution requirement and B) for the existing permutation remove the 
substituted capability as the candidate

> Invalid wirings may result from substitutable exports
> -----------------------------------------------------
>
>                 Key: FELIX-4497
>                 URL: https://issues.apache.org/jira/browse/FELIX-4497
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Watson
>         Attachments: org.apache.felix.resolver.patch
>
>
> FELIX-737 is a framework issue but the same issue also exists in the 
> standalone resolver implementation.  I am opening a separate bug to 
> specifically address the issue in the standalone resolver implementation.
> The felix framework resolve has a known issue with substitutable exports 
> FELIX-737.  The scenario is pretty complex.  It involves bundles multiple 
> bundles that export and import the same package X at different versions and 
> an importer that imports the package with a range that requires a specific 
> package.  If that specific package gets substituted there are cases where the 
> resolver will return wires to the substituted export.
> The ideal solution would do something smart with selection of substituted 
> exports so that different combinations or selections can be made if the first 
> substitution did not provide good results.  This potentially will explode the 
> permutations.  For now we should at least change the current permutation to 
> drop the substituted exports so that invalid wires do not get created.  That 
> could drop some good valid combinations, but that is better than the current 
> state where completely invalid wires get created.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to