Commit 02a54c2
committed
fix(native): register reflection/resource metadata so the binary works
The root cause of `auth() failed: HTTP 0` was never TLS. GraalVM native
images need reflection metadata for every Jackson-(de)serialized type;
without it, deserializing the auth response throws InvalidDefinitionException
(an IOException), which the OpenAPI client wraps as ApiException code 0. The
MCP layer was equally broken: McpSchema record components were unregistered,
so even a stdio `initialize` crashed with UnsupportedFeatureError.
- Add reflect-config.json generated with the GraalVM tracing agent across
full MCP sessions (stub + live API), plus wholesale registration of all
McpSchema$*, api.client.model.* and mcp.model.* types.
- Replace reachability-metadata.json (unified format, ignored by GraalVM for
JDK 21) with classic reflect-config.json / resource-config.json, processed
by every GraalVM version.
- Include logback.xml in the image: native logs were going to stdout with the
default pattern, corrupting the MCP stdio protocol; they now go to stderr.
- Drop the obsolete "Sync OS CA certificates" CI step; the WE1 intermediate is
now bundled in-image (see previous commit), making the cacerts surgery moot.
Verified end-to-end on macOS arm64: --help, tools/list and live tool calls.
Bumps version to 0.3.3.1 parent 8182d3c commit 02a54c2
7 files changed
Lines changed: 1947 additions & 77 deletions
File tree
- .github/workflows
- src/main/resources/META-INF/native-image
- com.qtsurfer/mcp-java
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | 50 | | |
98 | 51 | | |
99 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
9 | 19 | | |
10 | 20 | | |
11 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
0 commit comments