I have raised a JIRA for this issue: https://issues.apache.org/jira/browse/FELIX-6277
Cheers, Neil On Tue, 19 May 2020 at 08:58, Neil Bartlett <njbartl...@gmail.com> wrote: > Hi Apache devs, > > I'm trying to use org.apache.felix.configurator version 1.0.10 in an OSGi > enRoute project. EnRoute uses 1.0.6 by default, but I'm trying to bump the > version to see if it addresses what might be a lifecycle bug (that's a > topic for a separate email). > > Initially there were some problems resolving the bundle, so 1.0.10 has an > import that was not required in 1.0.6: > > [ERROR] Resolution failed. Capabilities satisfying the following > requirements could not be found: > [<<INITIAL>>] > ⇒ osgi.identity: (osgi.identity=org.example.app) > ⇒ [org.example.app version=0.0.1.202005190718] > ⇒ osgi.extender: > (&(osgi.extender=osgi.configurator)(version>=1.0.0)(!(version>=2.0.0))) > ⇒ [org.apache.felix.configurator version=1.0.10] > ⇒ osgi.wiring.package: > (&(osgi.wiring.package=javax.json)(&(version>=1.0.0)(!(version>=2.0.0)))) > > I tried adding org.apache.geronimo.specs:geronimo-json_1.0_spec (which is > listed as a provided scope dependency of configurator) to the resolver > input as follows: > > <dependency> > <groupId>org.apache.geronimo.specs</groupId> > <artifactId>geronimo-json_1.0_spec</artifactId> > <version>1.0-alpha-1</version> > <scope>runtime</scope> > </dependency> > > This successfully resolves, but the Configurator now throws a CNFE from > its activator: > > ! Failed to start bundle org.apache.felix.configurator-1.0.10, exception > activator error org.apache.johnzon.core.JsonProviderImpl not found from: > javax.json.spi.JsonProvider:doLoadProvider#132 > org.osgi.framework.BundleException: Exception in > org.apache.felix.configurator.impl.Activator.start() of bundle > org.apache.felix.configurator. > at > org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:803) > at > org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:732) > at > org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1005) > at > org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:357) > ... > Caused by: javax.json.JsonException: > org.apache.johnzon.core.JsonProviderImpl not found > at > javax.json.spi.JsonProvider.doLoadProvider(JsonProvider.java:132) > at javax.json.spi.JsonProvider.provider(JsonProvider.java:64) > at javax.json.Json.createReader(Json.java:68) > at > org.apache.felix.configurator.impl.json.JSONUtil.parseJSON(JSONUtil.java:329) > at > org.apache.felix.configurator.impl.json.JSONUtil.readJSON(JSONUtil.java:161) > at > org.apache.felix.configurator.impl.json.JSONUtil.readJSON(JSONUtil.java:122) > at > org.apache.felix.configurator.impl.json.JSONUtil.readConfigurationsFromBundle(JSONUtil.java:86) > at > org.apache.felix.configurator.impl.Configurator.processAddBundle(Configurator.java:315) > ... > Caused by: java.lang.ClassNotFoundException: > org.apache.johnzon.core.JsonProviderImpl > at > java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) > at > java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) > at > org.eclipse.osgi.internal.framework.ContextFinder.loadClass(ContextFinder.java:135) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) > at > javax.json.spi.JsonProvider.doLoadProvider(JsonProvider.java:129) > ... > > I am running on Java 11 (AdoptOpenJDK build 11.0.7+10). What combination > of bundles does Configurator actually require? Why does this bundle allow a > correct resolution of imports but then throw a CNFE at runtime? Note that > configurator 1.0.6 embeds geronimo-json_1.0_spec-1.0-alpha-1.jar, > johnzon-core-1.0.0.jar and org.apache.felix.converter-1.0.0.jar using > Bundle-ClassPath, but this is no longer the case in 1.0.10. That seems like > an error. > > Regards, > Neil >