You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Stefan Seifert (JIRA)" <ji...@apache.org> on 2018/08/06 08:19:00 UTC

[jira] [Closed] (SLING-7788) registerInjectActivateService() causes non-conform ServiceRegistration

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

Stefan Seifert closed SLING-7788.
---------------------------------

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