From 78354b69c7662c1dc4f809f265eaced241f2fd06 Mon Sep 17 00:00:00 2001 From: Mikhail Zhukov <56256475+zh-muxa@users.noreply.github.com> Date: Wed, 18 May 2022 09:31:48 +0300 Subject: [PATCH] #302 Fixed running snappy-java as OSGi bundle on Apple Silicon (M1 Pro) (#303) Co-authored-by: Mikhail Zhukov --- build.sbt | 3 ++- src/main/java/org/xerial/snappy/SnappyBundleActivator.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 1c4248f..86a6c26 100644 --- a/build.sbt +++ b/build.sbt @@ -86,8 +86,9 @@ OsgiKeys.additionalHeaders := Map( "org/xerial/snappy/native/Windows/x86_64/snappyjava.dll;osname=win32;processor=x64", "org/xerial/snappy/native/Windows/x86_64/snappyjava.dll;osname=win32;processor=amd64", "org/xerial/snappy/native/Windows/x86/snappyjava.dll;osname=win32;processor=x86", - "org/xerial/snappy/native/Mac/x86/libsnappyjava.dylib;osname=macosx;processor=x86", + "org/xerial/snappy/native/Mac/x86/libsnappyjava.jnilib;osname=macosx;processor=x86", "org/xerial/snappy/native/Mac/x86_64/libsnappyjava.dylib;osname=macosx;processor=x86-64", + "org/xerial/snappy/native/Mac/aarch64/libsnappyjava.dylib;osname=macosx;processor=aarch64", "org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so;osname=linux;processor=x86-64", "org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so;osname=linux;processor=x64", "org/xerial/snappy/native/Linux/x86_64/libsnappyjava.so;osname=linux;processor=amd64", diff --git a/src/main/java/org/xerial/snappy/SnappyBundleActivator.java b/src/main/java/org/xerial/snappy/SnappyBundleActivator.java index dec838c..cd9d0ab 100755 --- a/src/main/java/org/xerial/snappy/SnappyBundleActivator.java +++ b/src/main/java/org/xerial/snappy/SnappyBundleActivator.java @@ -51,7 +51,9 @@ public class SnappyBundleActivator throws Exception { String library = System.mapLibraryName(LIBRARY_NAME); - if (library.toLowerCase().endsWith(".dylib")) { + String osArch = System.getProperty("os.arch"); + + if (library.toLowerCase().endsWith(".dylib") && "x86".equals(osArch)) { // some MacOS JDK7+ vendors map to dylib instead of jnilib library = library.replace(".dylib", ".jnilib"); }