[
https://issues.apache.org/jira/browse/KARAF-6345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16936743#comment-16936743
]
Robert Varga commented on KARAF-6345:
-------------------------------------
Ah, that might be it. FTR, on karaf-4.2.2 (working) I am getting this:
leveldb:
{noformat}
opendaylight-user@root>headers 207
wrap_file__home_nite_karaf-0.10.1_system_org_iq80_leveldb_leveldb_0.10_leveldb-0.10.jar
(207)
---------------------------------------------------------------------------------------------
Archiver-Version = Plexus Archiver
Bnd-LastModified = 1569328534564
Build-Jdk = 1.8.0_144
Build-Time = 2017-12-18T12:21:56-0800
Built-By = dain
Created-By = 11.0.4 (Oracle Corporation)
Generated-By-Ops4j-Pax-From =
wrap:file:/home/nite/karaf-0.10.1/system/org/iq80/leveldb/leveldb/0.10/leveldb-0.10.jar
Git-Commit-Id = fbcd05b664c4add5a4ee247a34eb37fc8295b353
Implementation-Title = leveldb
Implementation-Vendor-Id = org.iq80.leveldb
Implementation-Version = 0.10
Manifest-Version = 1.0
Originally-Created-By = Apache Maven 3.5.2
Specification-Title = leveldb
Specification-Version = 0.10
Tool = Bnd-2.3.0.201405100607Bundle-ManifestVersion = 2
Bundle-Name =
wrap_file__home_nite_karaf-0.10.1_system_org_iq80_leveldb_leveldb_0.10_leveldb-0.10.jar
Bundle-SymbolicName =
wrap_file__home_nite_karaf-0.10.1_system_org_iq80_leveldb_leveldb_0.10_leveldb-0.10.jar
Bundle-Version = 0Require-Capability =
osgi.ee;filter:=(&(osgi.ee=JavaSE)(version=1.8))Export-Package =
org.iq80.leveldb.impl;uses:="com.google.common.collect,org.iq80.leveldb,org.iq80.leveldb.table,org.iq80.leveldb.util",
org.iq80.leveldb.table;uses:="org.iq80.leveldb,org.iq80.leveldb.impl,org.iq80.leveldb.util",
org.iq80.leveldb.util;uses:="com.google.common.collect,org.iq80.leveldb.impl,org.iq80.leveldb.table"
Import-Package =
com.google.common.base;resolution:=optional,
com.google.common.cache;resolution:=optional,
com.google.common.collect;resolution:=optional,
com.google.common.io;resolution:=optional,
com.google.common.primitives;resolution:=optional,
com.google.common.util.concurrent;resolution:=optional,
org.iq80.leveldb;resolution:=optional,
org.iq80.snappy;resolution:=optional,
org.xerial.snappy;resolution:=optional{noformat}
leveldbjni:
{noformat}
opendaylight-user@root>headers 105
leveldbjni-all (105)
--------------------
Bnd-LastModified = 1435622312707
Build-Jdk = 1.8.0_45
Built-By = xinyzhao
Created-By = Apache Maven Bundle Plugin
Embed-Dependency = *;groupId=org.fusesource.leveldbjni;inline=META-INF/native/*,
Embed-Transitive = true
Implementation-Title = LevelDB JNI
Implementation-Version = 1.8
Manifest-Version = 1.0
Tool = Bnd-1.50.0Bundle-Description = An uber jar which contains all the
leveldbjni platform libraries and dependencies
Bundle-DocURL = http://fusesource.com/
Bundle-License = http://www.opensource.org/licenses/BSD-3-Clause
Bundle-ManifestVersion = 2
Bundle-Name = leveldbjni-all
Bundle-NativeCode =
META-INF/native/windows32/leveldbjni.dll;osname=Win32;processor=x86,META-INF/native/windows64/leveldbjni.dll;osname=Win32;processor=x86-64,META-INF/native/osx/libleveldbjni.jnilib;osname=macosx;processor=x86,META-INF/native/osx/libleveldbjni.jnilib;osname=macosx;processor=x86-64,META-INF/native/linux32/libleveldbjni.so;osname=Linux;processor=x86,META-INF/native/linux64/libleveldbjni.so;osname=Linux;processor=x86-64,META-INF/native/sunos64/amd64/libleveldbjni.so;osname=SunOS;processor=x86-64,META-INF/native/sunos64/sparcv9/libleveldbjni.so;osname=SunOS;processor=sparcv9
Bundle-SymbolicName = org.fusesource.leveldbjni.leveldbjni-all
Bundle-Vendor = FuseSource, Corp.
Bundle-Version = 1.8.0
Export-Package =
org.fusesource.leveldbjni;uses:=org.iq80.leveldb;version=1.8,
org.iq80.leveldb;version=0.6
{noformat}
akka-persistence:
{noformat}
opendaylight-user@root>headers 76
akka-persistence (76)
---------------------
Automatic-Module-Name = akka.persistence
Implementation-Title = akka-persistence
Implementation-URL = https://akka.io/
Implementation-Vendor = Lightbend Inc.
Implementation-Vendor-Id = com.typesafe.akka
Implementation-Version = 2.5.22
Manifest-Version = 1.0
Specification-Title = akka-persistence
Specification-Vendor = Lightbend Inc.
Specification-Version = 2.5.22
Tool = Bnd-4.0.0.201805111645Bundle-Description = akka-persistence
Bundle-DocURL = https://doc.akka.io/api/akka/2.5.22
Bundle-License = http://www.apache.org/licenses/LICENSE-2.0;description=Apache
License, Version 2.0
Bundle-ManifestVersion = 2
Bundle-Name = akka-persistence
Bundle-SymbolicName = com.typesafe.akka.persistence
Bundle-Vendor = Lightbend Inc.
Bundle-Version = 2.5.22Require-Capability =
osgi.ee;filter:=(&(osgi.ee=JavaSE)(version>=1.8))Export-Package =
akka.persistence;uses:="akka.actor,akka.dispatch,akka.event,akka.japi,akka.persistence.journal,akka.persistence.serialization,com.typesafe.config,scala,scala.collection,scala.collection.immutable,scala.concurrent.duration,scala.math,scala.reflect,scala.runtime,scala.util,scala.util.control";version=2.5.22,
akka.persistence.fsm;
uses:="akka.actor,
akka.dispatch,
akka.event,
akka.japi.pf,
akka.persistence,
akka.persistence.fsm.japi.pf,
akka.persistence.serialization,
akka.routing,
com.typesafe.config,
scala,
scala.collection,
scala.collection.immutable,
scala.collection.mutable,
scala.concurrent.duration,
scala.reflect,
scala.runtime";
version=2.5.22,
akka.persistence.fsm.japi.pf;uses:="akka.japi.pf,akka.persistence.fsm,scala,scala.runtime";version=2.5.22,
akka.persistence.journal;uses:="akka,akka.actor,akka.dispatch,akka.event,akka.pattern,akka.persistence,akka.util,com.typesafe.config,scala,scala.collection,scala.collection.immutable,scala.collection.mutable,scala.concurrent,scala.concurrent.duration,scala.reflect,scala.runtime,scala.util";version=2.5.22,
akka.persistence.journal.inmem;uses:="akka.actor,akka.pattern,akka.persistence,akka.persistence.journal,com.typesafe.config,scala,scala.collection.immutable,scala.concurrent,scala.reflect,scala.runtime,scala.util";version=2.5.22,
akka.persistence.journal.japi;uses:="akka.actor,akka.pattern,akka.persistence,akka.persistence.journal,com.typesafe.config,scala,scala.collection.immutable,scala.concurrent,scala.reflect,scala.runtime,scala.util";version=2.5.22,
akka.persistence.journal.leveldb;
uses:="akka.actor,
akka.dispatch,
akka.event,
akka.pattern,
akka.persistence,
akka.persistence.journal,
akka.serialization,
akka.util,
com.typesafe.config,
org.iq80.leveldb,
scala,
scala.collection,
scala.collection.immutable,
scala.collection.mutable,
scala.concurrent,
scala.reflect,
scala.runtime,
scala.util";
version=2.5.22,
akka.persistence.serialization;uses:="akka.actor,akka.persistence,akka.persistence.fsm,akka.protobuf,akka.serialization,scala,scala.collection,scala.collection.immutable,scala.reflect,scala.runtime";version=2.5.22,
akka.persistence.snapshot;uses:="akka.actor,akka.event,akka.pattern,akka.persistence,scala,scala.concurrent,scala.reflect,scala.runtime,scala.util";version=2.5.22,
akka.persistence.snapshot.japi;uses:="akka.actor,akka.event,akka.pattern,akka.persistence,akka.persistence.snapshot,scala,scala.concurrent,scala.reflect,scala.runtime";version=2.5.22,
akka.persistence.snapshot.local;uses:="akka.actor,akka.event,akka.pattern,akka.persistence,akka.persistence.serialization,akka.persistence.snapshot,com.typesafe.config,scala,scala.collection,scala.collection.immutable,scala.concurrent,scala.reflect,scala.runtime,scala.util.matching";version=2.5.22
Import-Package =
org.fusesource.leveldbjni;resolution:=optional;version="[1.8,2)",
org.iq80.leveldb;resolution:=optional;version="[0.6,1)",
org.iq80.leveldb.impl;resolution:=optional,
akka;version="[2.5,2.6)",
akka.actor;version="[2.5,2.6)",
akka.dispatch;version="[2.5,2.6)",
akka.event;version="[2.5,2.6)",
akka.japi;version="[2.5,2.6)",
akka.japi.pf;version="[2.5,2.6)",
akka.pattern;version="[2.5,2.6)",
akka.persistence;version="[2.5,2.6)",
akka.persistence.fsm;version="[2.5,2.6)",
akka.persistence.fsm.japi.pf;version="[2.5,2.6)",
akka.persistence.journal;version="[2.5,2.6)",
akka.persistence.serialization;version="[2.5,2.6)",
akka.persistence.snapshot;version="[2.5,2.6)",
akka.protobuf;version="[2.5,2.6)",
akka.routing;version="[2.5,2.6)",
akka.serialization;version="[2.5,2.6)",
akka.util;version="[2.5,2.6)",
akka.util.ccompat;version="[2.5,2.6)",
com.typesafe.config;version="[1.3.0,1.4.0)",
scala;version="[2.12,2.13)",
scala.collection;version="[2.12,2.13)",
scala.collection.convert;version="[2.12,2.13)",
scala.collection.generic;version="[2.12,2.13)",
scala.collection.immutable;version="[2.12,2.13)",
scala.collection.mutable;version="[2.12,2.13)",
scala.concurrent;version="[2.12,2.13)",
scala.concurrent.duration;version="[2.12,2.13)",
scala.math;version="[2.12,2.13)",
scala.reflect;version="[2.12,2.13)",
scala.runtime;version="[2.12,2.13)",
scala.runtime.java8;version="[2.12,2.13)",
scala.sys;version="[2.12,2.13)",
scala.util;version="[2.12,2.13)",
scala.util.control;version="[2.12,2.13)",
scala.util.matching;version="[2.12,2.13)"{noformat}
i.e. wrap results in a versionless (0.0.0) export and that's pick up correctly.
> Optional imports do not propagate to OSGi framework
> ---------------------------------------------------
>
> Key: KARAF-6345
> URL: https://issues.apache.org/jira/browse/KARAF-6345
> Project: Karaf
> Issue Type: Bug
> Components: karaf
> Affects Versions: 4.2.4, 4.2.5, 4.2.6
> Reporter: Robert Varga
> Assignee: Jean-Baptiste Onofré
> Priority: Critical
> Fix For: 4.3.0, 4.2.8
>
>
> Based on
> [https://lists.apache.org/thread.html/bf9e724cc9715b2a568bac7537a7be4a8df85867a2126bbd14e4e79d@%3Cdev.karaf.apache.org%3E]
> The problem is that:
> {noformat}
> java.lang.NoClassDefFoundError: org/iq80/leveldb/DBFactory
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
> at java.lang.Class.getDeclaredConstructors(Class.java:2020)
> at akka.util.Reflect$.findConstructor(Reflect.scala:92)
> at
> akka.persistence.Persistence.akka$persistence$Persistence$$createPlugin(Persistence.scala:408)
> [snip]
> Caused by: java.lang.ClassNotFoundException: org.iq80.leveldb.DBFactory
> cannot be found by com.typesafe.akka.persistence_2.5.23
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
> at
> org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> ... 32 more{noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)