Skip to content

Commit 70e5aa7

Browse files
committed
fix #13, add java.net.socket and many other necessary classes to the
graal reflection list
1 parent 5476e5e commit 70e5aa7

File tree

5 files changed

+170
-39
lines changed

5 files changed

+170
-39
lines changed

project.clj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(defproject mobdap "0.1.0-alpha2"
1+
(defproject mobdap "0.1.1"
22
:description "Debug Adapter for MobDap"
33
:url "https://github.com/atomicptr/mobdap"
44
:license {:name "GPL-3.0-or-later" :url "https://www.gnu.org/licenses/gpl-3.0.en.html"}
@@ -17,6 +17,8 @@
1717
:target-path "target/%s"
1818
:native-image {:opts ["-H:ReflectionConfigurationFiles=resources/reflection.json"
1919
"--verbose"
20+
"--no-fallback"
21+
"--parallelism=32"
2022
"--initialize-at-build-time"]}
2123
:profiles {:default {:main ^:skip-aot mobdap.main}
2224

resources/reflection.json

Lines changed: 127 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,127 @@
1-
[
2-
{
3-
"name": "java.io.BufferedReader",
4-
"allDeclaredConstructors": true,
5-
"allPublicConstructors": true,
6-
"allDeclaredMethods": true,
7-
"allPublicMethods": true
8-
},
9-
{
10-
"name": "java.io.BufferedWriter",
11-
"allDeclaredConstructors": true,
12-
"allPublicConstructors": true,
13-
"allDeclaredMethods": true,
14-
"allPublicMethods": true
15-
},
16-
{
17-
"name": "java.io.InputStreamReader",
18-
"allDeclaredConstructors": true,
19-
"allPublicConstructors": true,
20-
"allDeclaredMethods": true,
21-
"allPublicMethods": true
22-
},
23-
{
24-
"name": "java.io.PrintWriter",
25-
"allDeclaredConstructors": true,
26-
"allPublicConstructors": true,
27-
"allDeclaredMethods": true,
28-
"allPublicMethods": true
29-
},
30-
{
31-
"name": "java.net.ServerSocket",
32-
"allDeclaredConstructors": true,
33-
"allPublicConstructors": true,
34-
"allDeclaredMethods": true,
35-
"allPublicMethods": true
36-
}
37-
]
1+
[ {
2+
"name" : "java.io.BufferedReader",
3+
"allDeclaredConstructors" : true,
4+
"allPublicConstructors" : true,
5+
"allDeclaredMethods" : true,
6+
"allPublicMethods" : true
7+
}, {
8+
"name" : "java.io.BufferedWriter",
9+
"allDeclaredConstructors" : true,
10+
"allPublicConstructors" : true,
11+
"allDeclaredMethods" : true,
12+
"allPublicMethods" : true
13+
}, {
14+
"name" : "java.io.InputStreamReader",
15+
"allDeclaredConstructors" : true,
16+
"allPublicConstructors" : true,
17+
"allDeclaredMethods" : true,
18+
"allPublicMethods" : true
19+
}, {
20+
"name" : "java.io.PrintWriter",
21+
"allDeclaredConstructors" : true,
22+
"allPublicConstructors" : true,
23+
"allDeclaredMethods" : true,
24+
"allPublicMethods" : true
25+
}, {
26+
"name" : "java.net.ServerSocket",
27+
"allDeclaredConstructors" : true,
28+
"allPublicConstructors" : true,
29+
"allDeclaredMethods" : true,
30+
"allPublicMethods" : true
31+
}, {
32+
"name" : "java.net.Socket",
33+
"allDeclaredConstructors" : true,
34+
"allPublicConstructors" : true,
35+
"allDeclaredMethods" : true,
36+
"allPublicMethods" : true
37+
}, {
38+
"name" : "org.luaj.vm2.Globals",
39+
"allDeclaredConstructors" : true,
40+
"allPublicConstructors" : true,
41+
"allDeclaredMethods" : true,
42+
"allPublicMethods" : true
43+
}, {
44+
"name" : "org.luaj.vm2.LuaBoolean",
45+
"allDeclaredConstructors" : true,
46+
"allPublicConstructors" : true,
47+
"allDeclaredMethods" : true,
48+
"allPublicMethods" : true
49+
}, {
50+
"name" : "org.luaj.vm2.LuaClosure",
51+
"allDeclaredConstructors" : true,
52+
"allPublicConstructors" : true,
53+
"allDeclaredMethods" : true,
54+
"allPublicMethods" : true
55+
}, {
56+
"name" : "org.luaj.vm2.LuaDouble",
57+
"allDeclaredConstructors" : true,
58+
"allPublicConstructors" : true,
59+
"allDeclaredMethods" : true,
60+
"allPublicMethods" : true
61+
}, {
62+
"name" : "org.luaj.vm2.LuaFunction",
63+
"allDeclaredConstructors" : true,
64+
"allPublicConstructors" : true,
65+
"allDeclaredMethods" : true,
66+
"allPublicMethods" : true
67+
}, {
68+
"name" : "org.luaj.vm2.LuaInteger",
69+
"allDeclaredConstructors" : true,
70+
"allPublicConstructors" : true,
71+
"allDeclaredMethods" : true,
72+
"allPublicMethods" : true
73+
}, {
74+
"name" : "org.luaj.vm2.LuaNil",
75+
"allDeclaredConstructors" : true,
76+
"allPublicConstructors" : true,
77+
"allDeclaredMethods" : true,
78+
"allPublicMethods" : true
79+
}, {
80+
"name" : "org.luaj.vm2.LuaNumber",
81+
"allDeclaredConstructors" : true,
82+
"allPublicConstructors" : true,
83+
"allDeclaredMethods" : true,
84+
"allPublicMethods" : true
85+
}, {
86+
"name" : "org.luaj.vm2.LuaString",
87+
"allDeclaredConstructors" : true,
88+
"allPublicConstructors" : true,
89+
"allDeclaredMethods" : true,
90+
"allPublicMethods" : true
91+
}, {
92+
"name" : "org.luaj.vm2.LuaTable",
93+
"allDeclaredConstructors" : true,
94+
"allPublicConstructors" : true,
95+
"allDeclaredMethods" : true,
96+
"allPublicMethods" : true
97+
}, {
98+
"name" : "org.luaj.vm2.LuaValue",
99+
"allDeclaredConstructors" : true,
100+
"allPublicConstructors" : true,
101+
"allDeclaredMethods" : true,
102+
"allPublicMethods" : true
103+
}, {
104+
"name" : "org.luaj.vm2.lib.Bit32Lib$Bit32Lib2",
105+
"allDeclaredConstructors" : true,
106+
"allPublicConstructors" : true,
107+
"allDeclaredMethods" : true,
108+
"allPublicMethods" : true
109+
}, {
110+
"name" : "org.luaj.vm2.lib.Bit32Lib$Bit32LibV",
111+
"allDeclaredConstructors" : true,
112+
"allPublicConstructors" : true,
113+
"allDeclaredMethods" : true,
114+
"allPublicMethods" : true
115+
}, {
116+
"name" : "org.luaj.vm2.lib.IoLib$IoLibV",
117+
"allDeclaredConstructors" : true,
118+
"allPublicConstructors" : true,
119+
"allDeclaredMethods" : true,
120+
"allPublicMethods" : true
121+
}, {
122+
"name" : "org.luaj.vm2.lib.jse.LuajavaLib",
123+
"allDeclaredConstructors" : true,
124+
"allPublicConstructors" : true,
125+
"allDeclaredMethods" : true,
126+
"allPublicMethods" : true
127+
} ]

run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44

55
cd "$(dirname "$0")" || exit
66

7-
lein with-profile dev run
7+
lein with-profile dev run --debug

scripts/gen-reflection-file.clj

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env bb
2+
3+
(require '[cheshire.core :as json])
4+
5+
(def classes
6+
["java.io.BufferedReader"
7+
"java.io.BufferedWriter"
8+
"java.io.InputStreamReader"
9+
"java.io.PrintWriter"
10+
"java.net.ServerSocket"
11+
"java.net.Socket"
12+
"org.luaj.vm2.Globals"
13+
"org.luaj.vm2.LuaBoolean"
14+
"org.luaj.vm2.LuaClosure"
15+
"org.luaj.vm2.LuaDouble"
16+
"org.luaj.vm2.LuaFunction"
17+
"org.luaj.vm2.LuaInteger"
18+
"org.luaj.vm2.LuaNil"
19+
"org.luaj.vm2.LuaNumber"
20+
"org.luaj.vm2.LuaString"
21+
"org.luaj.vm2.LuaTable"
22+
"org.luaj.vm2.LuaValue"
23+
"org.luaj.vm2.lib.Bit32Lib$Bit32Lib2"
24+
"org.luaj.vm2.lib.Bit32Lib$Bit32LibV"
25+
"org.luaj.vm2.lib.IoLib$IoLibV"
26+
"org.luaj.vm2.lib.jse.LuajavaLib"])
27+
28+
(defn generate-entry [item]
29+
{:name item
30+
:allDeclaredConstructors true
31+
:allPublicConstructors true
32+
:allDeclaredMethods true
33+
:allPublicMethods true})
34+
35+
(let [classes (map generate-entry classes)
36+
classes (json/generate-string classes {:pretty true})]
37+
(spit "resources/reflection.json" classes))

src/mobdap/main.clj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
[taoensso.timbre.appenders.core :as appenders])
88
(:gen-class))
99

10+
(set! *warn-on-reflection* true)
11+
1012
(defn- cache-dir []
1113
(or
1214
(System/getenv "XDG_CACHE_HOME")

0 commit comments

Comments
 (0)