'Could not resolve module: org.fusesource.leveldbjni.leveldbjni-all' error

Problem Description

A route that uses the Camel LevelDB feature, fails to deploy in ESB Runtime running on a Windows Server 2016, with the following error message:

2018-12-03T16:35:22,628 | ERROR | Framework Event Dispatcher: org.eclipse.osgi.internal.framework.EquinoxEventPublisher@70227710 | log4j2.internal.FrameworkHandler 137 | 247 - org.apache.camel.camel-leveldb - 2.17.6 | FrameworkEvent ERROR - org.apache.camel.camel-leveldb
org.osgi.framework.BundleException: Could not resolve module: org.apache.camel.camel-leveldb [247]
Unresolved requirement: Import-Package: org.fusesource.leveldbjni; version="[1.8.0,2.0.0)"
-> Export-Package: org.fusesource.leveldbjni; bundle-symbolic-name="org.fusesource.leveldbjni.leveldbjni-all"; bundle-version="1.8.0"; version="1.8.0"; uses:="org.iq80.leveldb"
org.fusesource.leveldbjni.leveldbjni-all [249]
Unresolved requirement: Require-Capability: osgi.native; native.paths.0:List<String>="META-INF/native/windows32/leveldbjni.dll"; native.paths.2:List<String>="META-INF/native/osx/libleveldbjni.jnilib"; native.paths.1:List<String>="META-INF/native/windows64/leveldbjni.dll"; native.paths.4:List<String>="META-INF/native/linux32/libleveldbjni.so"; native.paths.3:List<String>="META-INF/native/osx/libleveldbjni.jnilib"; native.paths.5:List<String>="META-INF/native/linux64/libleveldbjni.so"; filter:="(|(&(osgi.native.osname~=Win32)(osgi.native.processor~=x86))(&(osgi.native.osname~=Win32)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=macosx)(osgi.native.processor~=x86))(&(osgi.native.osname~=macosx)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=Linux)(osgi.native.processor~=x86))(&(osgi.native.osname~=Linux)(osgi.native.processor~=x86-64)))"
Unresolved requirement: Import-Package: org.iq80.leveldb; version="[0.6.0,1.0.0)"
-> Export-Package: org.iq80.leveldb; bundle-symbolic-name="org.fusesource.leveldbjni.leveldbjni-all"; bundle-version="1.8.0"; version="0.6.0"

 

Root Cause

There is an issue with the mapping of the default OSGI OS name.

 

Solution

Edit the RUNTIME-HOME/etc/system.properties file by adding the following line:
org.osgi.framework.os.name = Win32

Save the file, then restart the Runtime.

Version history
Revision #:
4 of 4
Last update:
‎08-19-2019 11:05 AM
Updated by: