felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matias SM <matias...@yahoo.com.ar>
Subject Re: getting bundle's closure by using FrameworkWiring.getDependencyClosure
Date Thu, 10 May 2012 23:47:34 GMT
Looking to this example and trying it in my case I think I understand 
what is going wrong.
If I run the commands you show, I get:
g! ((bundle 0) adapt ((bundle 0) loadClass 
org.osgi.framework.wiring.FrameworkWiring)) getDependencyClosure [ 
(bundle 9) ]
     9|Resolved   |    1|mybundle_symboicname (1.0.0)

g! inspect c *package 9
mybundle_symboicname[9] provides:
-------------------------------------------
*package [EMPTY]

If I understand correctly this output, It is what I'd have expected 
since myBundle doesn't have any capability.
The thing is that I would expect that the Dependency Closure would also 
contain the bundles related to myBundle's requirements. I think I may 
misunderstood the documentation:
...The graph is expanded by adding any bundle that is either wired to a 
package that is currently exported by a bundle in the graph or 
__requires a bundle in the graph__...

 From that last part I thought that the bundles wired to myBundle by its 
requirements would also be in the dependency closure.
If that is not the case, is there a way to get the bundles wired to 
myBundle by its requirements (and the requirements of those bundles, and 
so on...)?

Thank you again for your help
Kind regards

On 10/05/12 20:32, Richard S. Hall wrote:
> Just as a follow up, I see something like this:
>
> g! lb
> START LEVEL 1
>    ID|State      |Level|Name
>     0|Active     |    0|System Bundle (4.1.0.SNAPSHOT)
>     1|Active     |    1|uninstaller (0.0.0)
>     3|Active     |    1|Apache Felix Gogo Command (0.12.0)
>     4|Active     |    1|Apache Felix Gogo Runtime (0.10.0)
>     5|Active     |    1|Apache Felix Gogo Shell (0.10.0)
> g! ((bundle 0) adapt ((bundle 0) loadClass 
> org.osgi.framework.wiring.FrameworkWiring)) getDependencyClosure [ 
> (bundle 4) ]
>     5|Active     |    1|org.apache.felix.gogo.shell (0.10.0)
>     4|Active     |    1|org.apache.felix.gogo.runtime (0.10.0)
>     3|Active     |    1|org.apache.felix.gogo.command (0.12.0)
>
> g! inspect c *package 4
> org.apache.felix.gogo.runtime [4] provides:
> -------------------------------------------
> osgi.wiring.package; org.apache.felix.service.command 0.10.0 required by:
>    org.apache.felix.gogo.shell [5]
>    org.apache.felix.gogo.command [3]
> osgi.wiring.package; org.apache.felix.gogo.api 0.10.0 [UNUSED]
> osgi.wiring.package; org.apache.felix.service.threadio 0.10.0 [UNUSED]
> g!
>
> This looks correct, but there could always be bugs, I guess.
>
> -> richard
>
> On 5/10/12 19:19 , Matias SM wrote:
>> Hi everybody,
>> I'm trying to get a bundle's dependency closure by using the method 
>> getDependencyClosure. However if I do sth like:
>> context.getBundle(0).adapt(FrameworkWiring.class).getDependencyClosure(Arrays.asList(myBundle));

>>
>> to get myBundle's closure, all this call is returning is the bundle 
>> (myBundle) itself.
>>
>> From getDependencyClosure javadoc:
>> /Returns the dependency closure for the specified bundles.
>> A graph of bundles is computed starting with the specified bundles. 
>> The graph is expanded by adding any bundle that is either wired to a 
>> package that is currently exported by a bundle in the graph or 
>> requires a bundle in the graph. The graph is fully constructed when 
>> there is no bundle outside the graph that is wired to a bundle in the 
>> graph. The graph may contain UNINSTALLED bundles that are removal 
>> pending./
>>
>> I understand that the result of the previously cited call should be 
>> all the bundles wired (by a requirement or a capability) to myBundle.
>> What am I doing wrong?
>>
>> And I would like to ask you also if there is a way of getting only 
>> the closure formed by the bundles wired to myBundle by its 
>> requirements (i.e. only get those bundles that are needed to resolve 
>> myBundle).
>>
>> Thanks in advance for any help you can kindly give me
>> Kind regards
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message