This will be a duplication of functionality. Your service for managing other existing services becomes a service registry.
Now you have services that depend on your data providers, also depending on your service manager, and only so that they can search to get the actual service that they need.
Itβs better to just insert the actual required dependency into the code that actually needs it, and there are many tools (DS, Spring DM, Blueprint ...) that will provide this functionality based on the capabilities defined in the specification, That is, the utility registry.
Update. If you are doing dynamic loading, as you mean, OSGi already provides a ServiceListener for this purpose, and consumers should be aware of this nature and encoded accordingly. The above tools also handle these cases.
Robin source share