[
https://issues.apache.org/jira/browse/SLING-7788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Seifert resolved SLING-7788.
-----------------------------------
Resolution: Fixed
Fix Version/s: Testing OSGi Mock 2.3.10
thanks - i've applied the PR
https://github.com/apache/sling-org-apache-sling-testing-osgi-mock/commit/bf71f40288c140b9206b1e55b9e90b21431a29a5
> 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
> Assignee: Stefan Seifert
> Priority: Major
> Fix For: Testing OSGi Mock 2.3.10
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> 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 is 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)