Bnd 4.0 and Apache Felix SCR 2.1.0 are both released and support this DS 1.4 
feature. It’s used in OSGi enRoute 
<https://github.com/osgi/osgi.enroute/blob/master/examples/quickstart/rest/src/main/java/org/osgi/enroute/examples/quickstart/rest/Upper.java#L12>!


Tim

> On 11 Jul 2018, at 11:34, Alain Picard <pic...@castortech.com> wrote:
> 
> Tim,
> 
> I saw that but was sure it was part of DS 1.4, which I am eagerly awaiting :)
> 
> Alain
> 
> 
> On Wed, Jul 11, 2018 at 4:28 AM Tim Ward <tim.w...@paremus.com 
> <mailto:tim.w...@paremus.com>> wrote:
> Note that there is a much prettier (and type safe) way to set the ranking 
> using the @ServiceRanking component property annotation 
> <https://osgi.org/javadoc/osgi.cmpn/7.0.0/org/osgi/service/component/propertytypes/ServiceRanking.html>.
> 
> This will get rid of the ugly property section in your component annotation :)
> 
> Best Regards,
> 
> Tim
> 
>> On 10 Jul 2018, at 22:35, Alain Picard via osgi-dev <osgi-dev@mail.osgi.org 
>> <mailto:osgi-dev@mail.osgi.org>> wrote:
>> 
>> 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 
>> <mailto: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 
>> <mailto: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 
>> <mailto: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 <mailto: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.png>
>> 
>> _______________________________________________
>> OSGi Developer Mail List
>> osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>
>> https://mail.osgi.org/mailman/listinfo/osgi-dev 
>> <https://mail.osgi.org/mailman/listinfo/osgi-dev>_______________________________________________
>> OSGi Developer Mail List
>> osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>
>> https://mail.osgi.org/mailman/listinfo/osgi-dev 
>> <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