[
https://issues.apache.org/jira/browse/KARAF-7437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17539485#comment-17539485
]
ASF GitHub Bot commented on KARAF-7437:
---------------------------------------
CMoH opened a new pull request, #84:
URL: https://github.com/apache/karaf-cellar/pull/84
I explained the problem in detail in the Jira issue.
As far as the patch goes, I have not found through a brief inspection any
relevant tests to update/create. Maybe you can point me in that direction -
even if the change seems trivial.
Looking forward to your comments.
> Karaf Cellar DOSGi service.exported.interfaces should support all property
> types in OSGi specs
> ----------------------------------------------------------------------------------------------
>
> Key: KARAF-7437
> URL: https://issues.apache.org/jira/browse/KARAF-7437
> Project: Karaf
> Issue Type: Improvement
> Components: cellar
> Affects Versions: cellar-4.2.1
> Reporter: Ciprian Ciubotariu
> Priority: Minor
>
> I came upon this issue by using the {{ExportedService}} interface from osgi
> spec jars, trying to get a service exported by cellar-dosgi. However, this
> caused cellar to NPE when attempting to use the declared service property.
> Upon investigation, I found the following:
> Cellar expects the {{service.exported.interfaces}} service property to be of
> type {{{}String{}}}, but OSGi specs refer to the *String+* type in the text
> specification in section
> [100.2|https://docs.osgi.org/specification/osgi.enterprise/7.0.0/service.remoteservices.html#i1710847].
> This is later expressed as code comments in the OSGi specs code as a type
> constraint to any of {{{}String{}}}, {{String[]}} or {{Collection<String>}} -
> link
> [here|https://github.com/osgi/osgi/blob/23800640013b03b595f5a780b276ba1626351dbd/org.osgi.framework/src/org/osgi/framework/Constants.java#L1543]
> However, the {{ExportedService}} property in osgi compendium jar use
> {{Class<?>[]}} for the property type - both
> [DS|https://github.com/osgi/osgi/blob/main/org.osgi.service.component/src/org/osgi/service/component/propertytypes/ExportedService.java#L56]
> and
> [CDI|https://github.com/osgi/osgi/blob/main/org.osgi.service.cdi/src/org/osgi/service/cdi/propertytypes/ExportedService.java#L56].
> Here are respective doc links for
> [DS|https://docs.osgi.org/specification/osgi.enterprise/7.0.0/service.component.html#org.osgi.service.component.propertytypes.ExportedService]
> and
> [CDI|https://docs.osgi.org/specification/osgi.enterprise/7.0.0/service.cdi.html#org.osgi.service.cdi.propertytypes.ExportedService]
> I've prepared a commit that aligns Cellar's handling of this service property
> to the String property types enumerated above.
> I am uncertain how the discrepancy between Java spec jars and the text should
> be handled: allow Cellar (and others) to parse {{{}Class<?>[]{}}}? Change the
> {{ExportedService}} annotations to match the OSGi text specification?
--
This message was sent by Atlassian Jira
(v8.20.7#820007)