You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Thomas Watson (JIRA)" <ji...@apache.org> on 2014/04/24 22:37:18 UTC

[jira] [Updated] (FELIX-4497) Invalid wirings may result from substitutable exports

     [ 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)