Generalise some library related variables

This commit is contained in:
2016-08-17 20:26:31 +01:00
parent e3b807d23a
commit 8773f00707

View File

@@ -20,24 +20,24 @@ public class NativeLocator {
public File find(NativeDef nativeDef) throws IOException {
String resourceName = String.format("%s/%s/%s/%s", nativeDef.getGroupPath(), nativeDef.name, nativeDef.platform, nativeDef.file);
if (extractDir != null) {
File libFile = new File(extractDir, String.format("%s/%s", nativeDef.platform, nativeDef.file));
File lockFile = new File(libFile.getParentFile(), libFile.getName() + ".lock");
File file = new File(extractDir, String.format("%s/%s", nativeDef.platform, nativeDef.file));
File lockFile = new File(file.getParentFile(), file.getName() + ".lock");
lockFile.getParentFile().mkdirs();
lockFile.createNewFile();
RandomAccessFile lockFileAccess = new RandomAccessFile(lockFile, "rw");
try {
if (lockFile.length() > 0 && lockFileAccess.readBoolean()) {
// Library has been extracted
return libFile;
// File has been extracted
return file;
}
URL resource = getClass().getClassLoader().getResource(resourceName);
if (resource != null) {
// Extract library and write marker to lock file
libFile.getParentFile().mkdirs();
copy(resource, libFile);
// Extract file and write marker to lock file
file.getParentFile().mkdirs();
copy(resource, file);
lockFileAccess.seek(0);
lockFileAccess.writeBoolean(true);
return libFile;
return file;
}
} finally {
// Also releases lock
@@ -46,15 +46,15 @@ public class NativeLocator {
} else {
URL resource = getClass().getClassLoader().getResource(resourceName);
if (resource != null) {
File libFile;
File libDir = File.createTempFile(nativeDef.file, "dir");
libDir.delete();
libDir.mkdirs();
libFile = new File(libDir, nativeDef.file);
libFile.deleteOnExit();
libDir.deleteOnExit();
copy(resource, libFile);
return libFile;
File file;
File directory = File.createTempFile(nativeDef.file, "dir");
directory.delete();
directory.mkdirs();
file = new File(directory, nativeDef.file);
file.deleteOnExit();
directory.deleteOnExit();
copy(resource, file);
return file;
}
}
return null;