[ 
https://issues.apache.org/jira/browse/SLING-10124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Seifert reassigned SLING-10124:
--------------------------------------

        Fix Version/s: Testing OSGi Mock 3.1.0
    Affects Version/s: Testing OSGi Mock 3.0.0
             Assignee: Stefan Seifert
              Summary: OSGi Mock - Service reference order is not correct for 
Collection field injection  (was: OSGi Mock - Service reference order is not 
correct)

thanks for the PR - i had a deeper look. your test case & fix made it clear 
that your issue is about injection service references into a collection field 
(updated ticket title accordingly), which is something different than the 
implementation of the method BundleContext.getServiceReferences i had in mind.

both use cases behave differently in felix - interestingly in both cases the 
OSGi spec does not really define in which order the references should be 
returned, as far as i've seen e.g.:
* 
https://docs.osgi.org/specification/osgi.core/7.0.0/framework.api.html#org.osgi.framework.BundleContext.getServiceReferences-String-String-
* 
https://docs.osgi.org/specification/osgi.cmpn/7.0.0/service.component.html#service.component-field.injection

testing with the actual felix implementation it seems that
* BundleContext.getServiceReferences returns the service in any order, ignoring 
the refences
* injection services references in a collection fields always injects the 
services in ascending order by rank, just as in your test case


> OSGi Mock - Service reference order is not correct for Collection field 
> injection
> ---------------------------------------------------------------------------------
>
>                 Key: SLING-10124
>                 URL: https://issues.apache.org/jira/browse/SLING-10124
>             Project: Sling
>          Issue Type: Bug
>          Components: Testing
>    Affects Versions: Testing OSGi Mock 3.0.0
>            Reporter: Roy Teeuwen
>            Assignee: Stefan Seifert
>            Priority: Major
>             Fix For: Testing OSGi Mock 3.1.0
>
>
> If I look at the osgi mocks implementation to get back a list of service 
> references, I have the feeling that the order is wrong:
> https://github.com/apache/sling-org-apache-sling-testing-osgi-mock/blob/ef6535bab69562ad3c2276dc84893fa2fab48438/core/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java#L295
> It states here that the order is the reverse order, but if I check in the 
> framework itself, the following comment would state the other order (which is 
> what I also experience when debugging in a live instance) :
> https://github.com/apache/felix-dev/blob/c562829a9ffd40af2f165a8b4763b4d6759f3c0f/framework/src/main/java/org/apache/felix/framework/ServiceRegistrationImpl.java#L688



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to