-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
Description
Describe the issue
filter json:
{
"rules": [
{ "excludeClasses": "**" },
{ "includeClasses": "org.apache.seata.**" }
],
"regexRules": [
{ "excludeClasses": ".*[Tt]est.*" },
{ "excludeClasses": ".*Test$" },
{ "excludeClasses": ".*Tests$" }
]
}
Steps to reproduce the issue
- Add JVM options -agentlib:native-image-agent=caller-filter-file=/xxxxx/incubator-seata/aot_filter.json,config-merge-dir=/xxxxx/incubator-seata/all/src/main/resources/META-INF/native-image
- run
Describe GraalVM and your environment:
- GraalVM version (latest snapshot builds can be found here), or commit id if built from source: [e.g. EE 19.3, CE 20.0, CE 20.1.0-dev-20200304_0848]
- JDK major version: java version "25" 2025-09-16 LTS
Java(TM) SE Runtime Environment Oracle GraalVM 25+37.1 (build 25+37-LTS-jvmci-b01)
Java HotSpot(TM) 64-Bit Server VM Oracle GraalVM 25+37.1 (build 25+37-LTS-jvmci-b01, mixed mode, sharing) - OS: macos 26.2 (25C56)
- Architecture: arm64
More details
reachability-metadata.json
For instance, completely irrelevant metadata entries like the following are being included:
"reflection": [
{
"type": "com.intellij.rt.junit.JUnitStarter",
"jniAccessible": true,
"methods": [
{
"name": "main",
"parameterTypes": [ "java.lang.String[]" ]
}
]
}
]
How can I effectively filter out these unwanted reflection metadata entries? I only want to retain classes from specific packages that I explicitly need, such as those in the JDK, Seata, ByteBuddy, etc.
I've tried implementing a custom filter (caller-filter), but it doesn't appear to be working as expected or taking full effect.