summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2018-09-26 15:07:13 +0200
committerGitHub <noreply@github.com>2018-09-26 15:07:13 +0200
commit460170b69c8481db0e525196f22db00c3748e7f8 (patch)
tree43e1d273c7ec549747c9ea806d1d55c719c99876 /vespajlib
parent597ca76803b8c83594c7214184b02ec974488319 (diff)
Revert "Balder/add native fadvise"
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/pom.xml4
-rw-r--r--vespajlib/src/main/java/com/yahoo/io/NativeIO.java87
-rw-r--r--vespajlib/src/test/java/com/yahoo/io/NativeIOTestCase.java34
3 files changed, 0 insertions, 125 deletions
diff --git a/vespajlib/pom.xml b/vespajlib/pom.xml
index 741b4b58cc9..5b9c143a447 100644
--- a/vespajlib/pom.xml
+++ b/vespajlib/pom.xml
@@ -31,10 +31,6 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-exec</artifactId>
</dependency>
- <dependency>
- <groupId>net.java.dev.jna</groupId>
- <artifactId>jna</artifactId>
- </dependency>
<!-- provided scope -->
diff --git a/vespajlib/src/main/java/com/yahoo/io/NativeIO.java b/vespajlib/src/main/java/com/yahoo/io/NativeIO.java
deleted file mode 100644
index bee43a8653e..00000000000
--- a/vespajlib/src/main/java/com/yahoo/io/NativeIO.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.yahoo.io;
-
-import java.io.File;
-import java.io.FileDescriptor;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.lang.reflect.Field;
-import java.util.logging.Logger;
-
-import com.sun.jna.LastErrorException;
-import com.sun.jna.Native;
-import com.sun.jna.Platform;
-
-public class NativeIO {
- private final Logger logger = Logger.getLogger(getClass().getName());
- private static final int POSIX_FADV_DONTNEED = 4; // See /usr/include/linux/fadvise.h
- private static boolean initialized = false;
- private static Throwable initError = null;
- static {
- try {
- if (Platform.isLinux()) {
- Native.register(Platform.C_LIBRARY_NAME);
- initialized = true;
- }
- } catch (Throwable throwable) {
- initError = throwable;
- }
- }
-
- private static final Field fieldFD = getField(FileDescriptor.class, "fd");
-
-
- private static native int posix_fadvise(int fd, long offset, long len, int flag) throws LastErrorException;
-
- public NativeIO() {
- if (!initialized) {
- logger.warning("native IO not possible due to " + getError().getMessage());
- }
- }
-
- public boolean valid() { return initialized; }
- public Throwable getError() {
- if (initError != null) {
- return initError;
- } else {
- return new RuntimeException("Platform is unsúpported. Only supported on linux.");
- }
- }
-
- public void dropFileFromCache(FileDescriptor fd) {
- if (initialized) {
- posix_fadvise(getNativeFD(fd), 0, 0, POSIX_FADV_DONTNEED);
- }
- }
-
- public void dropFileFromCache(File file) {
- try {
- dropFileFromCache(new FileInputStream(file).getFD());
- } catch (FileNotFoundException e) {
- throw new RuntimeException(e);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-
-
- private static Field getField(Class<?> clazz, String fieldName) {
- Field field;
- try {
- field = clazz.getDeclaredField(fieldName);
- } catch (NoSuchFieldException e) {
- throw new RuntimeException(e);
- }
- field.setAccessible(true);
- return field;
- }
-
- private static int getNativeFD(FileDescriptor fd) {
- try {
- return fieldFD.getInt(fd);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- }
- }
-
-}
diff --git a/vespajlib/src/test/java/com/yahoo/io/NativeIOTestCase.java b/vespajlib/src/test/java/com/yahoo/io/NativeIOTestCase.java
deleted file mode 100644
index ecd38056a19..00000000000
--- a/vespajlib/src/test/java/com/yahoo/io/NativeIOTestCase.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.yahoo.io;
-
-import com.sun.jna.Platform;
-import org.junit.Test;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
-
-public class NativeIOTestCase {
-
- @Test
- public void requireThatDropFileFromCacheDoesNotThrow() throws IOException {
- File testFile = new File("testfile");
- FileOutputStream output = new FileOutputStream(testFile);
- output.write('t');
- output.flush();
- output.close();
- NativeIO nativeIO = new NativeIO();
- if (Platform.isLinux()) {
- assertTrue(nativeIO.valid());
- } else {
- assertFalse(nativeIO.valid());
- assertEquals("Platform is unsúpported. Only supported on linux.", nativeIO.getError().getMessage());
- }
- nativeIO.dropFileFromCache(output.getFD());
- nativeIO.dropFileFromCache(testFile);
- testFile.delete();
- }
-}