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 Diesler (Updated) (JIRA)" <ji...@apache.org> on 2012/03/02 18:11:57 UTC

[jira] [Updated] (FELIX-3370) Complex Require-Bundle resolver failure

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

Thomas Diesler updated FELIX-3370:
----------------------------------

    Description: 
Consider this

{code}
        // Bundle-SymbolicName: requirebundleB
        // Export-Package: resources
        
        // Bundle-SymbolicName: requirebundleC
        // Export-Package: resources
        
        // Bundle-SymbolicName: requirebundleD
        // Export-Package: org.jboss.osgi.test.classloading.export;uses:=resources
        // Import-Package: resources;bundle-symbolic-name=requirebundleC

        // Bundle-SymbolicName: requirebundleE
        // Require-Bundle: requirebundleD
        // Import-Package: resources

        Wiring wiringE = getWiring(env, resourceE);
        assertEquals(0, wiringE.getProvidedResourceWires(null).size());
        assertEquals(1, wiringE.getRequiredResourceWires(WIRING_PACKAGE_NAMESPACE).size());
        wire = wiringE.getRequiredResourceWires(WIRING_PACKAGE_NAMESPACE).get(0);
        assertEquals(resourceC, wire.getProvider());
{code}

The current implementation of the standalone resolver wires E to B

  was:
Consider this

{code}
        // Bundle-SymbolicName: requirebundleB
        // Export-Package: resources
        
        // Bundle-SymbolicName: requirebundleC
        // Export-Package: resources
        
        // Bundle-SymbolicName: requirebundleD
        // Import-Package: resources;bundle-symbolic-name=requirebundleC

        // Bundle-SymbolicName: requirebundleE
        // Require-Bundle: requirebundleD
        // Import-Package: resources

        Wiring wiringE = getWiring(env, resourceE);
        assertEquals(0, wiringE.getProvidedResourceWires(null).size());
        assertEquals(1, wiringE.getRequiredResourceWires(WIRING_PACKAGE_NAMESPACE).size());
        wire = wiringE.getRequiredResourceWires(WIRING_PACKAGE_NAMESPACE).get(0);
        assertEquals(resourceC, wire.getProvider());
{code}

The current implementation of the standalone resolver wires E to B


I added the missing uses directive in D

        // Bundle-SymbolicName: requirebundleD
        // Export-Package: org.jboss.osgi.test.classloading.export;uses:=resources
        // Import-Package: resources;bundle-symbolic-name=requirebundleC


                
> Complex Require-Bundle resolver failure
> ---------------------------------------
>
>                 Key: FELIX-3370
>                 URL: https://issues.apache.org/jira/browse/FELIX-3370
>             Project: Felix
>          Issue Type: Bug
>            Reporter: Thomas Diesler
>
> Consider this
> {code}
>         // Bundle-SymbolicName: requirebundleB
>         // Export-Package: resources
>         
>         // Bundle-SymbolicName: requirebundleC
>         // Export-Package: resources
>         
>         // Bundle-SymbolicName: requirebundleD
>         // Export-Package: org.jboss.osgi.test.classloading.export;uses:=resources
>         // Import-Package: resources;bundle-symbolic-name=requirebundleC
>         // Bundle-SymbolicName: requirebundleE
>         // Require-Bundle: requirebundleD
>         // Import-Package: resources
>         Wiring wiringE = getWiring(env, resourceE);
>         assertEquals(0, wiringE.getProvidedResourceWires(null).size());
>         assertEquals(1, wiringE.getRequiredResourceWires(WIRING_PACKAGE_NAMESPACE).size());
>         wire = wiringE.getRequiredResourceWires(WIRING_PACKAGE_NAMESPACE).get(0);
>         assertEquals(resourceC, wire.getProvider());
> {code}
> The current implementation of the standalone resolver wires E to B

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira