From e5dc8a6fa27bac3accef6e693a9061ea66746da3 Mon Sep 17 00:00:00 2001 From: Samuel Audet Date: Tue, 8 Sep 2020 09:57:07 +0900 Subject: [PATCH] Add missing config for GraalVM Native Image --- src/main/java/org/bytedeco/javacpp/tools/Builder.java | 3 ++- src/main/java/org/bytedeco/javacpp/tools/Generator.java | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/bytedeco/javacpp/tools/Builder.java b/src/main/java/org/bytedeco/javacpp/tools/Builder.java index a7e0dcc09..5b55ba067 100644 --- a/src/main/java/org/bytedeco/javacpp/tools/Builder.java +++ b/src/main/java/org/bytedeco/javacpp/tools/Builder.java @@ -1275,7 +1275,8 @@ public File[] build() throws IOException, InterruptedException, ParserException try (PrintWriter out = encoding != null ? new PrintWriter(file, encoding) : new PrintWriter(file)) { out.println("{"); out.println(" \"resources\": ["); - out.print(" {\"pattern\": \"META-INF/.*\"}"); + out.println(" {\"pattern\": \"META-INF/.*\"},"); + out.print(" {\"pattern\": \"org/bytedeco/javacpp/properties/.*\"}"); String separator = "," + System.lineSeparator(); for (File f : files != null ? files : new File[0]) { if (f != null && !f.toPath().startsWith(configDirectory.toPath())) { diff --git a/src/main/java/org/bytedeco/javacpp/tools/Generator.java b/src/main/java/org/bytedeco/javacpp/tools/Generator.java index f1b8f25d3..970424075 100644 --- a/src/main/java/org/bytedeco/javacpp/tools/Generator.java +++ b/src/main/java/org/bytedeco/javacpp/tools/Generator.java @@ -90,6 +90,7 @@ import org.bytedeco.javacpp.annotation.ValueGetter; import org.bytedeco.javacpp.annotation.ValueSetter; import org.bytedeco.javacpp.annotation.Virtual; +import sun.misc.Unsafe; /** * The Generator is where all the C++ source code that we need gets generated. @@ -1748,12 +1749,14 @@ boolean classes(boolean handleExceptions, boolean defineAdapters, boolean conver reflectClasses.add(Object.class); reflectClasses.add(Buffer.class); reflectClasses.add(String.class); + reflectClasses.add(Unsafe.class); for (Class cls : new LinkedHashSet(allClasses)) { while ((cls = cls.getEnclosingClass()) != null) { allClasses.add(cls); } } + allClasses.add(Unsafe.class); for (PrintWriter o : new PrintWriter[] {jniConfigOut, reflectConfigOut}) { if (o == null) {