Right. If you used static+greedy then you would see the deactivate and
activate methods called. This is because static would force DS to create a
new component instance.

Neil

On Tue, 10 Jul 2018 at 22:31, Alain Picard <pic...@castortech.com> wrote:

> Neil,
>
> As you saw I was on the right track but what I failed to realize is that
> this doesn't trigger a new call to the @Activate method. I changed the
> reference to use a bind/unbind method pair and a sysout in there shows
> exactly the pattern that you described.
>
> Thanks
> Alain
>
>
> On Tue, Jul 10, 2018 at 5:13 PM Neil Bartlett <njbartl...@gmail.com>
> wrote:
>
>> Your reference to service ICoreUtils in Example is mandatory, static and
>> reluctant. This means that whichever service it first binds to, it will
>> hold for as long as possible.
>>
>> Since the lower ranked service is published by a bundle with a lower ID,
>> it is probably published first. So that’s the one you will get.
>>
>> If you uncomment the dynamic+greedy setting in Example I expect you will
>> see the component briefly bind to the lower ranked service and then re-bind
>> to the higher ranked service. This is part of the definition of greedy.
>>
>> Neil
>>
>> On Tue, 10 Jul 2018 at 22:05, Alain Picard via osgi-dev <
>> osgi-dev@mail.osgi.org> wrote:
>>
>>> As part of DS enabling a lot of our code, I am testing how to compose
>>> services after finding out that reference annotations are not inherited.
>>> But I am facing a much more basic issue dealing with service ranking.
>>>
>>> Made a trivial example of an interface with one  method and 2
>>> implementation and with one having a higher service ranking. I always get
>>> the same one to execute and not the one I expect (only get the other if I
>>> comment the @Component reference on CoreUtils and then it refreshes with
>>> ExtUtils.
>>>
>>> What is wrong with my approach.
>>> [image: image.png]
>>>
>>> _______________________________________________
>>> 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

Reply via email to