xerial / snappy-java

Snappy compressor/decompressor for Java

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

snappy-java-1.1.8.4 does not use property "org.xerial.snappy.purejava" in org.xerial.snappy.SnappyBundleActivator#start

enricovisentin-imtf opened this issue · comments

I have used snappy-java:1.1.8.4 on my Apple MacBook Pro M1 in a standard java aplication ( java main ) and:

  • it works fine using its native library
  • it works fine using pure java (by providing the system property "org.xerial.snappy.purejava"=true)

When using it from a OSGI continer:

  • it does not load the native library (please see the log included below)
  • the org.xerial.snappy.SnappyBundleActivator does not use (or behave like) org.xerial.snappy.SnappyLoader, and it completely ignores the the system property "org.xerial.snappy.purejava")

Result: on my Apple MacBook Pro M1 I cannot use snappy-java:1.1.8.x from any OSGI bundle

2022-12-28T13:39:39,651 | ERROR | Framework Event Dispatcher: Equinox Container: 604fcc4b-1b09-48f1-bd2b-89c318a357f6 | Framework                        | 152 - org.xerial.snappy.snappy-java - 1.1.8.4 | FrameworkEvent ERROR
org.osgi.framework.BundleException: Could not resolve module: org.xerial.snappy.snappy-java [152]

  Unresolved requirement: Require-Capability: osgi.native; native.paths.8:List<String>="org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so";
   native.paths.17:List<String>="org/xerial/snappy/native/SunOS/x86/libsnappyjava.so"; 
   native.paths.7:List<String>="org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so";
   native.paths.16:List<String>="org/xerial/snappy/native/AIX/ppc64/libsnappyjava.a"; 
   native.paths.19:List<String>="org/xerial/snappy/native/SunOS/sparc/libsnappyjava.so"; 
   native.paths.9:List<String>="org/xerial/snappy/native/Linux/x86/libsnappyjava.so"; 
   native.paths.18:List<String>="org/xerial/snappy/native/SunOS/x86_64/libsnappyjava.so"; 
   native.paths.13:List<String>="org/xerial/snappy/native/Linux/ppc64/libsnappyjava.so"; 
   native.paths.12:List<String>="org/xerial/snappy/native/Linux/armv7/libsnappyjava.so"; 
   native.paths.15:List<String>="org/xerial/snappy/native/AIX/ppc/libsnappyjava.a"; 
   native.paths.14:List<String>="org/xerial/snappy/native/Linux/s390x/libsnappyjava.so"; 
   native.paths.11:List<String>="org/xerial/snappy/native/Linux/arm/libsnappyjava.so"; 
   native.paths.10:List<String>="org/xerial/snappy/native/Linux/aarch64/libsnappyjava.so"; 
   native.paths.0:List<String>="org/xerial/snappy/native/Windows/x86_64/snappyjava.dll"; 
   native.paths.2:List<String>="org/xerial/snappy/native/Windows/x86_64/snappyjava.dll"; 
   native.paths.1:List<String>="org/xerial/snappy/native/Windows/x86_64/snappyjava.dll"; 
   native.paths.4:List<String>="org/xerial/snappy/native/Mac/x86/libsnappyjava.dylib"; 
   native.paths.3:List<String>="org/xerial/snappy/native/Windows/x86/snappyjava.dll"; 
   native.paths.6:List<String>="org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so"; 
   native.paths.5:List<String>="org/xerial/snappy/native/Mac/x86_64/libsnappyjava.dylib"; filter:="(|(&(osgi.native.osname~=win32)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=win32)(osgi.native.processor~=x64))(&(osgi.native.osname~=win32)(osgi.native.processor~=amd64))(&(osgi.native.osname~=win32)(osgi.native.processor~=x86))(&(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-64))(&(osgi.native.osname~=linux)(osgi.native.processor~=x64))(&(osgi.native.osname~=linux)(osgi.native.processor~=amd64))(&(osgi.native.osname~=linux)(osgi.native.processor~=x86))(&(osgi.native.osname~=linux)(osgi.native.processor~=aarch64))(&(osgi.native.osname~=linux)(osgi.native.processor~=arm))(&(osgi.native.osname~=linux)(osgi.native.processor~=arm_le))(&(osgi.native.osname~=linux)(osgi.native.processor~=ppc64le))(&(osgi.native.osname~=linux)(osgi.native.processor~=s390x))(&(osgi.native.osname~=aix)(osgi.native.processor~=ppc))(&(osgi.native.osname~=aix)(osgi.native.processor~=ppc64))(&(osgi.native.osname~=sunos)(osgi.native.processor~=x86))(&(osgi.native.osname~=sunos)(osgi.native.processor~=x86-64))(&(osgi.native.osname~=sunos)(osgi.native.processor~=sparc)))"

	at org.eclipse.osgi.container.Module.start(Module.java:463) ~[org.eclipse.osgi-3.16.300.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1849) ~[org.eclipse.osgi-3.16.300.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136) ~[org.eclipse.osgi-3.16.300.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1842) ~[org.eclipse.osgi-3.16.300.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1785) ~[org.eclipse.osgi-3.16.300.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1747) ~[org.eclipse.osgi-3.16.300.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1669) ~[org.eclipse.osgi-3.16.300.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) ~[org.eclipse.osgi-3.16.300.jar:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) [org.eclipse.osgi-3.16.300.jar:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345) [org.eclipse.osgi-3.16.300.jar:?]