You’re entering dangerous waters … I think it is incredibly hard to do this 
reliably with the extensive requirement capabilities of OSGi.

I assume you want to garbage collect bundles. The best solution I know to this 
problem is to make a feature == a list of requirements. If such a feature is 
added/removed you resolve the list of features as the initial requirements. You 
then remove the bundles that are not part of the resolution and install the 
bundles that were missing.

I would strongly advice trying to do this with simple heuristics.

Kind regards,

        Peter Kriens


> On 15 jun. 2016, at 12:39, Paul F Fraser <pa...@a2zliving.com> wrote:
> 
> Actually I probably should be talking about required count.
> 
> Feature A requires bundle 1, 3 and 5
> Feature B requires bundle 3, 5 and 7
> Feature C requires bundles 1 and 8
> 
> bundle 1 is required by 2 features
> bundle 3 is required by 2 features
> bundle 5 is required by 2 features
> bundle 7 is required by 1 features
> bundle 8 is required by 1 features
> 
> if feature C is stopped bundle 8 can be stopped and possibly uninstalled
> bundle 1 count drops to  1 but remains running to serve Feature A
> 
> Paul
> 
> 
> On 15/06/2016 8:28 PM, Neil Bartlett wrote:
>>> On 15 Jun 2016, at 11:19, Paul F Fraser <pa...@a2zliving.com> wrote:
>>> 
>>> Hi,
>>> 
>>> The bundle usage counting is required for a simple feature start and stop 
>>> functionality.
>> Okay but we still haven’t got to the bottom of what you mean by “usage”.
>> 
>>> If a bundle is used by multiple features I need a count to know when to 
>>> install and start a bundle …
>> This sounds like you want to know whether a bundle *would* be used before 
>> you install/start it. OSGi cannot tell you that. You might be able to use 
>> the resolver tooling in bnd to predict what the runtime wiring might look 
>> like, but it’s not guaranteed to match what the framework will actually do.
>> 
>>> … and when features are stopped to detect when to stop and or uninstall a 
>>> bundle.
>> So, if a bundle has no provided wires and no consumed services then it’s 
>> probably pretty safe to uninstall.
>> 
>> Neil
>> 
>>> Paul
>>> 
>>> On 15/06/2016 8:00 PM, Neil Bartlett wrote:
>>>> Depends what you mean by "bundle usage".
>>>> 
>>>> If you’re talking about services, then you can get the ServiceReferences 
>>>> registered by a bundle and count the using bundles with getUsingBundles. 
>>>> If you’re talking about package wiring and Require-Bundle then you can 
>>>> adapt the bundle to a BundleWiring object and call getProvidedWires. Bear 
>>>> in mind that there will be duplicates and the bundle could also wire to 
>>>> itself (or reference its own services).
>>>> 
>>>> Neil
>>>> 
>>>>> On 15 Jun 2016, at 10:53, Paul F Fraser <pa...@a2zliving.com> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> Is there an existing ability in the OSGi environment to keep a bundle 
>>>>> usage count?
>>>>> 
>>>>> It is not difficult to create my own method and storage, but if something 
>>>>> already exists!
>>>>> 
>>>>> I did think I could use the Bundle data area but it seems that different 
>>>>> frameworks lay it out differently.
>>>>> 
>>>>> Aries subsystems has bundle counting but it is a bit heavy for my use 
>>>>> case.
>>>>> 
>>>>> Any suggestions?
>>>>> 
>>>>> Regards
>>>>> 
>>>>> Paul Fraser
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> OSGi Developer Mail List
>>>>> osgi-dev@mail.osgi.org
>>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>>>> _______________________________________________
>>>> OSGi Developer Mail List
>>>> osgi-dev@mail.osgi.org
>>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>>> 
>>> _______________________________________________
>>> OSGi Developer Mail List
>>> osgi-dev@mail.osgi.org
>>> https://mail.osgi.org/mailman/listinfo/osgi-dev
>> _______________________________________________
>> OSGi Developer Mail List
>> osgi-dev@mail.osgi.org
>> https://mail.osgi.org/mailman/listinfo/osgi-dev
> 
> 
> _______________________________________________
> OSGi Developer Mail List
> osgi-dev@mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to