Description
We have an OSGI application running on Felix, and we use the graphql-java-servlet library to serve GraphQL endpoints. In our log we see errors saying 'No configurations found at path OSGI-INF/configurator' coming from the Felix configurator.
The root cause is a requirement contained in the graphql-java-servlet bundle: osgi.extender:
It matches any capability provided in that namespace. The intended use of this namespace is to specify a specific extender (osgi.component or osgi.configurator).
With this too generic requirement, it can bind to any bundle that provides a osgi.extender capability. In this case it binds to the configurator bundle. This is unfortunate, as the configurator relies on the resolving of the requirement to detect whether it should process the bundle (as it assumes it was bound to the bundle on purpose). It searches for configuration that the bundle does not contain and logs the error message.
0 = {BundleWireImpl@2865} "[graphql-java-servlet [20](R 20.0)] osgi.extender; () -> [org.apache.felix.configurator [36](R 36.0)]"
m_requirer = {BundleRevisionImpl@2869} "graphql-java-servlet [20](R 20.0)"
m_req = {BundleRequirementImpl@2870} "[graphql-java-servlet [20](R 20.0)] osgi.extender; ()"
m_provider = {BundleRevisionImpl@2871} "org.apache.felix.configurator [36](R 36.0)"
m_cap = {BundleCapabilityImpl@2872} "[org.apache.felix.configurator [36](R 36.0)] osgi.extender; {osgi.extender=osgi.configurator, version=1.0.0}"
Equally, it could have bound to the org.apache.felix.scr bundle, as it also provides a capability from the osgi.extender namespace.