How beautiful

g! setting to: CoreUtils--SomeService
activate:CoreUtils--SomeService
Unsetting service
setting to: ExtUtils--SomeService
activate:ExtUtils--SomeService


On Tue, Jul 10, 2018 at 5:33 PM Neil Bartlett <njbartl...@gmail.com> wrote:

> 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