Skip to content

Commit 84e6e4b

Browse files
committed
Ensure that MariaDB never uses JNA
1 parent f1e064b commit 84e6e4b

File tree

4 files changed

+57
-0
lines changed

4 files changed

+57
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package io.quarkus.jdbc.mariadb.runtime.graal;
2+
3+
import com.oracle.svm.core.annotate.Delete;
4+
import com.oracle.svm.core.annotate.TargetClass;
5+
6+
@TargetClass(className = "org.mariadb.jdbc.internal.io.socket.SharedMemorySocket")
7+
@Delete
8+
public final class SharedMemorySocket_Removal {
9+
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package io.quarkus.jdbc.mariadb.runtime.graal;
2+
3+
import java.io.IOException;
4+
import java.net.Socket;
5+
6+
import org.mariadb.jdbc.internal.io.socket.SocketHandlerFunction;
7+
import org.mariadb.jdbc.internal.util.Utils;
8+
import org.mariadb.jdbc.util.Options;
9+
10+
public class SimpleSocketHandlerFunction implements SocketHandlerFunction {
11+
@Override
12+
public Socket apply(Options options, String host) throws IOException {
13+
return Utils.standardSocket(options, host);
14+
}
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.quarkus.jdbc.mariadb.runtime.graal;
2+
3+
import org.mariadb.jdbc.internal.io.socket.SocketHandlerFunction;
4+
5+
import com.oracle.svm.core.annotate.Substitute;
6+
import com.oracle.svm.core.annotate.TargetClass;
7+
8+
@TargetClass(org.mariadb.jdbc.internal.io.socket.SocketUtility.class)
9+
public final class SocketUtility_Substitutions {
10+
11+
// Ensure that JNA is never used
12+
@Substitute
13+
public static SocketHandlerFunction getSocketHandler() {
14+
return new SimpleSocketHandlerFunction();
15+
}
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.quarkus.jdbc.mariadb.runtime.graal;
2+
3+
import org.mariadb.jdbc.internal.io.socket.SocketHandlerFunction;
4+
import org.mariadb.jdbc.internal.util.Utils;
5+
6+
import com.oracle.svm.core.annotate.Alias;
7+
import com.oracle.svm.core.annotate.RecomputeFieldValue;
8+
import com.oracle.svm.core.annotate.TargetClass;
9+
10+
@TargetClass(org.mariadb.jdbc.internal.util.Utils.class)
11+
public final class Utils_socketHandler {
12+
13+
@Alias
14+
@RecomputeFieldValue(kind = RecomputeFieldValue.Kind.FromAlias)
15+
private static SocketHandlerFunction socketHandler = new SimpleSocketHandlerFunction();
16+
}

0 commit comments

Comments
 (0)