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
>

Reply via email to