[
https://issues.apache.org/jira/browse/SLING-7788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16559483#comment-16559483
]
Dirk Rudolph commented on SLING-7788:
-------------------------------------
I added an ignored test that illustrates the misbehaviour for the
ServiceTracker here:
[01d0eba|https://github.com/Buuhuu/sling-org-apache-sling-testing-osgi-mock/commit/01d0eba3e64b0dca06054f6a568e0dc32b165b3b]
> registerInjectActivateService() causes non-conform ServiceRegistration
> ----------------------------------------------------------------------
>
> Key: SLING-7788
> URL: https://issues.apache.org/jira/browse/SLING-7788
> Project: Sling
> Issue Type: Bug
> Components: Testing
> Affects Versions: Testing OSGi Mock 2.3.8
> Reporter: Dirk Rudolph
> Priority: Major
>
> According to the OSGI R6 Spec 5.2.3 the framework has to automatically set
> the {{objectClass}} property to the service registration for the types the
> service is registered for.
> {quote}The service interface names under which a service object has been
> successfully registered are automatically added to the service's properties
> under the key objectClass. This value must be set automatically by the
> Framework and any value provided by the bundle must be overridden.
> {quote}
> This is correctly implemented in
> [MockServiceRegistration#L67|https://github.com/apache/sling-org-apache-sling-testing-osgi-mock/blob/5adc8b7eb2c2bbffdd422959388e8c998684eda0/src/main/java/org/apache/sling/testing/mock/osgi/MockServiceRegistration.java#L67]
> by using the passed array of full qualified class names given to it from the
> [MockBundleContext#L101|https://github.com/apache/sling-org-apache-sling-testing-osgi-mock/blob/5adc8b7eb2c2bbffdd422959388e8c998684eda0/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java#L101]
> and
> [MockBundleContext#L121|https://github.com/apache/sling-org-apache-sling-testing-osgi-mock/blob/5adc8b7eb2c2bbffdd422959388e8c998684eda0/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java#L121]
> respectively.
> On the other hand the the execution flow of
> [registerInjectActivateService|https://github.com/apache/sling-org-apache-sling-testing-osgi-mock/blob/5adc8b7eb2c2bbffdd422959388e8c998684eda0/src/main/java/org/apache/sling/testing/mock/osgi/context/OsgiContextImpl.java#L155]
> always causes
> [MockBundleContext#L101|https://github.com/apache/sling-org-apache-sling-testing-osgi-mock/blob/5adc8b7eb2c2bbffdd422959388e8c998684eda0/src/main/java/org/apache/sling/testing/mock/osgi/MockBundleContext.java#L101]
> to be called with {{null}} as service class and so the array of services
> provided by the given object s missing for that registration.
> This causes for example the ServiceTracker according to 701.6.4.6 OSGI R6 to
> not work properly as the Filter it creates internally is referring to
> objectClass.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)