openhab / org.openhab.binding.zigbee

openHAB binding for ZigBee
Eclipse Public License 2.0
74 stars 113 forks source link

Missing Service Capability #423

Closed amitjoy closed 5 years ago

amitjoy commented 5 years ago

org.openhab.binding.zigbee should provide org.openhab.binding.zigbee.converter.ZigBeeChannelConverterFactory service capability in its manifest.

cdjackson commented 5 years ago

Please provide information on your issue, and your configuration, versions etc and any logs!

amitjoy commented 5 years ago

It is actually not an issue but an improvement. In our project, we are using bndtools for development and we deal with several different types of gateways. For preparing the list of bundles for any specific type of gateway, we use OSGi Resolver that reads OSGi Metadata and prepares the deployment package required for any specific type of gateway. Since we use openHAB ZigBee as well, we have client bundles that use org.openhab.binding.zigbee.converter.ZigBeeChannelConverterFactory using OSGi DS. If a SCR Component uses a services dependency, bndtools automatically generates metadata specifying that the consumer bundle depends on a service requirement. The same applies to the client bundles that use org.openhab.binding.zigbee.converter.ZigBeeChannelConverterFactory, that means, the client bundles have a service requirement of org.openhab.binding.zigbee.converter.ZigBeeChannelConverterFactory. But there is no bundle that provides the required metadata for this service. Since org.openhab.binding.zigbee provides the implementation of org.openhab.binding.zigbee.converter.ZigBeeChannelConverterFactory, it should include the following in its manifest:

Provide-Capability: osgi.service;objectClass:List<String>="org.openhab.binding.zigbee.converter.ZigBeeChannelConverterFactory"
hanneshofmann commented 5 years ago

As the Provide-Capability manifest header is not used nor required within the openHAB binding development, I suggest to not add them in the ZigBee binding.

If an integrator of the binding uses bndtools and needs further manifest headers, the integrator need to add them himself (e.g. using the Maven BND plugin or handle these as an internal on top commit).

I believe there is no need to adapt the binding. Therefore, could you please close this @cdjackson?

cdjackson commented 5 years ago

Thanks @hanneshofmann