Fix for duplicated interfaces in the introspection data; missing DBus annotations fixed #143
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I would like to explain the problem with the duplicated interfaces in the introspection data with an example, let's suppose we have interfaces:
Both interfaces have the
@DBusProperty
annotations - so we can expect an object that implementsHalModule
orPowerController
to implementProperties
as well.Forcing the
Properties
implementation can be accomplished with extending it byHalModule
andPowerController
- maybe it was not the original assumption of interfaces behavior but it allows to simplify the application logic.So the enriched interfaces will look like this:
And DBus object class:
Currently this logic results in duplicated
![dbus_pr1](https://user-images.githubusercontent.com/29204450/117572345-c6cee280-b0d2-11eb-8289-1657c7fd50da.png)
Properties
interface in introspection data:This PR:
DBusNamingUtil
class which will be helpful for internal and external use@DeprecatedOnDBus
,@IntrospectionDescription
) in the introspection data