[
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)