Closed richardscholten closed 3 years ago
@richardscholten Unfortunately there currently is no longer a maintainer involved with OSGI experience. Therefore any contributions to help fix this bug would be highly appreciated!
@richardscholten Do you know what change we need to make here to solve this issue?
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:
https://github.com/graphql-java-kickstart/graphql-java-servlet/blob/master/graphql-java-servlet/bnd.bnd
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.