Update LibraryVersion.java, LibraryVersion.java, and 3 more files...

This commit is contained in:
Andrea Cavalli 2020-10-29 14:59:34 +01:00
parent 27e77c40e0
commit 9bbb59695a
5 changed files with 37 additions and 16 deletions

View File

@ -2,8 +2,8 @@ package it.tdlight.common.utils;
public final class LibraryVersion {
public static final String VERSION = "${project.version}";
public static final String IMPLEMENTATION_NAME = "tdlib";
public static final Class<?> LINUX_AMD64_CLASS = it.tdlight.jni.tdlib.linux.amd64.LoadLibrary.class;
public static final Class<?> LINUX_AARCH64_CLASS = it.tdlight.jni.tdlib.linux.aarch64.LoadLibrary.class;
public static final Class<?> WINDOWS_AMD64_CLASS = it.tdlight.jni.tdlib.win.amd64.LoadLibrary.class;
public static final Class<?> OSX_AMD64_CLASS = it.tdlight.jni.tdlib.osx.amd64.LoadLibrary.class;
public static final String LINUX_AMD64_CLASS = "it.tdlight.jni.tdlib.linux.amd64.LoadLibrary";
public static final String LINUX_AARCH64_CLASS = "it.tdlight.jni.tdlib.linux.aarch64.LoadLibrary";
public static final String WINDOWS_AMD64_CLASS = "it.tdlight.jni.tdlib.win.amd64.LoadLibrary";
public static final String OSX_AMD64_CLASS = "it.tdlight.jni.tdlib.osx.amd64.LoadLibrary";
}

View File

@ -2,8 +2,8 @@ package it.tdlight.common.utils;
public final class LibraryVersion {
public static final String VERSION = "${project.version}";
public static final String IMPLEMENTATION_NAME = "tdlight";
public static final Class<?> LINUX_AMD64_CLASS = it.tdlight.jni.tdlight.linux.amd64.LoadLibrary.class;
public static final Class<?> LINUX_AARCH64_CLASS = it.tdlight.jni.tdlight.linux.aarch64.LoadLibrary.class;
public static final Class<?> WINDOWS_AMD64_CLASS = it.tdlight.jni.tdlight.win.amd64.LoadLibrary.class;
public static final Class<?> OSX_AMD64_CLASS = it.tdlight.jni.tdlight.osx.amd64.LoadLibrary.class;
public static final String LINUX_AMD64_CLASS = "it.tdlight.jni.tdlight.linux.amd64.LoadLibrary";
public static final String LINUX_AARCH64_CLASS = "it.tdlight.jni.tdlight.linux.aarch64.LoadLibrary";
public static final String WINDOWS_AMD64_CLASS = "it.tdlight.jni.tdlight.win.amd64.LoadLibrary";
public static final String OSX_AMD64_CLASS = "it.tdlight.jni.tdlight.osx.amd64.LoadLibrary";
}

View File

@ -24,6 +24,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.concurrent.ConcurrentHashMap;
import java.lang.reflect.InvocationTargetException;
/**
* The class to load the libraries needed to run Tdlib
@ -104,29 +105,49 @@ public class LoadLibrary {
case linux:
switch (arch) {
case amd64:
classForResource = LibraryVersion.LINUX_AMD64_CLASS;
try {
classForResource = Class.forName(LibraryVersion.LINUX_AMD64_CLASS);
} catch (ClassNotFoundException e) {
// not found
}
break;
case aarch64:
classForResource = LibraryVersion.LINUX_AARCH64_CLASS;
try {
classForResource = Class.forName(LibraryVersion.LINUX_AARCH64_CLASS);
} catch (ClassNotFoundException e) {
// not found
}
break;
}
break;
case osx:
if (arch == Arch.amd64) {
classForResource = LibraryVersion.OSX_AMD64_CLASS;
try {
classForResource = Class.forName(LibraryVersion.OSX_AMD64_CLASS);
} catch (ClassNotFoundException e) {
// not found
}
}
break;
case win:
if (arch == Arch.amd64) {
classForResource = LibraryVersion.WINDOWS_AMD64_CLASS;
try {
classForResource = Class.forName(LibraryVersion.WINDOWS_AMD64_CLASS);
} catch (ClassNotFoundException e) {
// not found
}
}
break;
}
if (classForResource == null) {
throw new IOException("Native libraries for platform " + os + "-" + arch + " not found!");
}
String libPath = createPath("libs", os.name(), arch.name(), libname) + getExt(os);
InputStream libInputStream = classForResource.getResourceAsStream(libPath);
InputStream libInputStream;
try {
libInputStream = (InputStream) this.getClass().getDeclaredMethod("getLibraryAsStream").invoke(InputStream.class);
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
throw new IOException("Native libraries for platform " + os + "-" + arch + " not found!", e);
}
if (Files.notExists(tempFile)) {
Files.copy(libInputStream, tempFile);
}

View File

@ -8,7 +8,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<revision>0-SNAPSHOT</revision>
<natives-version>3.0.123</natives-version>
<natives-version>3.0.125</natives-version>
</properties>
<repositories>
<repository>

View File

@ -8,7 +8,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<revision>0-SNAPSHOT</revision>
<natives-version>3.0.123</natives-version>
<natives-version>3.0.125</natives-version>
</properties>
<repositories>
<repository>