xuxiaowei-com-cn opened a new issue, #8226: URL: https://github.com/apache/incubator-seata/issues/8226
### Check Ahead - [x] I have searched the [issues](https://github.com/seata/seata/issues) of this repository and believe that this is not a duplicate. - [ ] I am willing to try to implement this feature myself. ### Why you need it? - 业务应用引入 `seata-spring-boot-starter` 后无法构建 GraalVM Native Image,导致用了 Seata 就不能 native 化。 - An application that depends on `seata-spring-boot-starter` cannot be built as a GraalVM native image, so adopting Seata rules out going native. ### How it could be? - 提供 native 可达性元数据,按 `META-INF/native-image/org.apache.seata/seata-spring-boot-starter/` 下的 `jni-config.json`、`predefined-classes-config.json`、`proxy-config.json`、`reflect-config.json`、 `resource-config.json`、`serialization-config.json` 拆分提交(参考 Nacos Client 的布局)。 - 补充 AOT Runtime Hints,覆盖自动配置、SPI(`EnhancedServiceLoader`)、配置资源与 `@GlobalTransactional` 代理。 - 新增客户端 native 兼容性测试套件与 CI workflow,并在 README 中说明支持范围与构建命令。 --- - Ship the native reachability metadata as separate files under `META-INF/native-image/org.apache.seata/seata-spring-boot-starter/`: `jni-config.json`, `predefined-classes-config.json`, `proxy-config.json`, `reflect-config.json`, `resource-config.json`, and `serialization-config.json` (same layout as Nacos Client). - Add AOT runtime hints covering auto-configuration, SPI loading (`EnhancedServiceLoader`), configuration resources, and the `@GlobalTransactional` proxies. - Add a client-side native compatibility test suite plus a CI workflow, and document the supported scope and build commands in the README. ### Other related information - 完整依赖树 - Full dependency tree ```text [INFO] Scanning for projects... [INFO] [INFO] Using the MultiThreadedBuilder implementation with a thread count of 16 [INFO] [INFO] ----------------< cn.com.xuxiaowei:user-seata-2025.1.x >---------------- [INFO] Building user-seata-2025.1.x 0.0.1-SNAPSHOT [INFO] from pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- dependency:3.10.0:tree (default-cli) @ user-seata-2025.1.x --- [INFO] cn.com.xuxiaowei:user-seata-2025.1.x:jar:0.0.1-SNAPSHOT [INFO] +- com.alibaba.cloud:spring-cloud-starter-alibaba-seata:jar:2025.1.0.1-SNAPSHOT:compile [INFO] | +- org.springframework.boot:spring-boot-webclient:jar:4.1.1:compile [INFO] | | +- org.springframework.boot:spring-boot:jar:4.1.1:compile [INFO] | | | \- org.springframework:spring-context:jar:7.0.9:compile [INFO] | | +- org.springframework.boot:spring-boot-http-client:jar:4.1.1:compile [INFO] | | +- org.springframework:spring-webflux:jar:7.0.9:compile [INFO] | | | \- org.springframework:spring-beans:jar:7.0.9:compile [INFO] | | \- org.springframework.boot:spring-boot-http-codec:jar:4.1.1:runtime [INFO] | +- org.springframework.boot:spring-boot-starter-aspectj:jar:4.1.1:compile [INFO] | | +- org.springframework:spring-aop:jar:7.0.9:compile [INFO] | | \- org.aspectj:aspectjweaver:jar:1.9.25.1:compile [INFO] | +- org.apache.seata:seata-spring-boot-starter:jar:2.6.0:compile [INFO] | | +- org.apache.seata:seata-spring-autoconfigure-client:jar:2.6.0:compile [INFO] | | | \- org.apache.seata:seata-spring-autoconfigure-core:jar:2.6.0:compile [INFO] | | \- org.apache.seata:seata-all:jar:2.6.0:compile [INFO] | | +- org.springframework:spring-tx:jar:7.0.9:compile [INFO] | | +- io.netty:netty-all:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-buffer:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-base:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-dns:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-haproxy:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-compression:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-http:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-http2:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-http3:jar:4.2.17.Final:compile [INFO] | | | +- org.jctools:jctools-core:jar:4.0.6:compile [INFO] | | | +- io.netty:netty-transport-native-unix-common:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-memcache:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-mqtt:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-redis:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-smtp:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-socks:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-stomp:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-xml:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-protobuf:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-marshalling:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-common:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-handler:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-handler-proxy:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-handler-ssl-ocsp:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-resolver:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-resolver-dns:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-transport:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-transport-rxtx:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-transport-sctp:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-transport-udt:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-transport-classes-epoll:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-transport-classes-kqueue:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-resolver-dns-classes-macos:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-transport-classes-io_uring:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-codec-classes-quic:jar:4.2.17.Final:compile [INFO] | | | +- io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-transport-native-epoll:jar:linux-aarch_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-transport-native-epoll:jar:linux-riscv64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-transport-native-io_uring:jar:linux-x86_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-transport-native-io_uring:jar:linux-aarch_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-transport-native-io_uring:jar:linux-riscv64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-transport-native-kqueue:jar:osx-aarch_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-resolver-dns-native-macos:jar:osx-x86_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-resolver-dns-native-macos:jar:osx-aarch_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-codec-native-quic:jar:linux-x86_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-codec-native-quic:jar:linux-aarch_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-codec-native-quic:jar:osx-x86_64:4.2.17.Final:runtime [INFO] | | | +- io.netty:netty-codec-native-quic:jar:osx-aarch_64:4.2.17.Final:runtime [INFO] | | | \- io.netty:netty-codec-native-quic:jar:windows-x86_64:4.2.17.Final:runtime [INFO] | | +- org.antlr:antlr4:jar:4.8:compile [INFO] | | | +- org.antlr:antlr4-runtime:jar:4.8:compile [INFO] | | | +- org.antlr:antlr-runtime:jar:3.5.2:compile [INFO] | | | +- org.antlr:ST4:jar:4.3:compile [INFO] | | | +- org.abego.treelayout:org.abego.treelayout.core:jar:1.0.3:compile [INFO] | | | +- org.glassfish:javax.json:jar:1.0.4:compile [INFO] | | | \- com.ibm.icu:icu4j:jar:61.1:compile [INFO] | | +- com.alibaba:fastjson:jar:2.0.58:compile [INFO] | | | \- com.alibaba.fastjson2:fastjson2-extension:jar:2.0.58:compile [INFO] | | | \- com.alibaba.fastjson2:fastjson2:jar:2.0.58:compile [INFO] | | +- com.alibaba:druid:jar:1.2.28:compile [INFO] | | +- com.typesafe:config:jar:1.2.1:compile [INFO] | | +- org.apache.commons:commons-lang3:jar:3.20.0:compile [INFO] | | +- org.apache.commons:commons-pool2:jar:2.13.1:compile [INFO] | | +- commons-pool:commons-pool:jar:1.6:compile [INFO] | | +- org.apache.dubbo.extensions:dubbo-filter-seata:jar:1.0.2:compile [INFO] | | +- aopalliance:aopalliance:jar:1.0:compile [INFO] | | +- com.google.guava:guava:jar:33.4.8-jre:compile [INFO] | | | +- com.google.guava:failureaccess:jar:1.0.3:compile [INFO] | | | +- com.google.errorprone:error_prone_annotations:jar:2.36.0:compile [INFO] | | | \- com.google.j2objc:j2objc-annotations:jar:3.0.0:compile [INFO] | | +- com.github.ben-manes.caffeine:caffeine:jar:3.2.4:compile [INFO] | | \- net.bytebuddy:byte-buddy:jar:1.18.11:compile [INFO] | \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.21.5:compile [INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.21:compile [INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.21.5:compile [INFO] | \- com.fasterxml.jackson.core:jackson-databind:jar:2.21.5:compile [INFO] +- com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:jar:2025.1.0.1-SNAPSHOT:compile [INFO] | +- com.alibaba.cloud:spring-cloud-alibaba-commons:jar:2025.1.0.1-SNAPSHOT:compile [INFO] | +- com.alibaba.cloud:spring-alibaba-nacos-config:jar:2025.1.0.1-SNAPSHOT:compile [INFO] | | \- org.springframework:spring-web:jar:7.0.9:compile [INFO] | | \- io.micrometer:micrometer-observation:jar:1.17.1:compile [INFO] | +- com.alibaba.nacos:nacos-client:jar:3.1.1:compile [INFO] | | +- com.alibaba.nacos:nacos-client-basic:jar:3.1.1:compile [INFO] | | | \- com.alibaba.nacos:nacos-auth-plugin:jar:3.1.1:compile [INFO] | | +- com.alibaba.nacos:nacos-encryption-plugin:jar:3.1.1:compile [INFO] | | +- com.alibaba.nacos:nacos-logback-adapter-12:jar:3.1.1:compile [INFO] | | +- com.alibaba.nacos:logback-adapter:jar:1.1.4:compile [INFO] | | +- com.alibaba.nacos:nacos-log4j2-adapter:jar:3.1.1:compile [INFO] | | +- org.apache.httpcomponents.client5:httpclient5:jar:5.6.4:compile [INFO] | | | \- org.apache.httpcomponents.core5:httpcore5-h2:jar:5.4.3:compile [INFO] | | +- org.apache.httpcomponents.core5:httpcore5:jar:5.4.3:compile [INFO] | | +- io.prometheus:simpleclient:jar:0.16.0:compile [INFO] | | | +- io.prometheus:simpleclient_tracer_otel:jar:0.16.0:compile [INFO] | | | | \- io.prometheus:simpleclient_tracer_common:jar:0.16.0:compile [INFO] | | | \- io.prometheus:simpleclient_tracer_otel_agent:jar:0.16.0:compile [INFO] | | +- org.yaml:snakeyaml:jar:2.6:compile [INFO] | | \- io.micrometer:micrometer-core:jar:1.17.1:compile [INFO] | | +- org.jspecify:jspecify:jar:1.0.1:compile [INFO] | | +- io.micrometer:micrometer-commons:jar:1.17.1:compile [INFO] | | \- org.hdrhistogram:HdrHistogram:jar:2.2.2:runtime [INFO] | +- org.springframework.cloud:spring-cloud-commons:jar:5.0.3:compile [INFO] | | \- org.springframework.security:spring-security-crypto:jar:7.1.1:compile [INFO] | +- org.springframework.cloud:spring-cloud-context:jar:5.0.3:compile [INFO] | +- org.slf4j:slf4j-api:jar:2.0.18:compile [INFO] | \- jakarta.annotation:jakarta.annotation-api:jar:3.0.0:compile [INFO] +- com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:jar:2025.1.0.1-SNAPSHOT:compile [INFO] +- org.springframework.boot:spring-boot-starter-jdbc:jar:4.1.1:compile [INFO] | +- org.springframework.boot:spring-boot-starter:jar:4.1.1:compile [INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:4.1.1:compile [INFO] | | | +- ch.qos.logback:logback-classic:jar:1.5.38:compile [INFO] | | | | \- ch.qos.logback:logback-core:jar:1.5.38:compile [INFO] | | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.25.5:compile [INFO] | | | | \- org.apache.logging.log4j:log4j-api:jar:2.25.5:compile [INFO] | | | \- org.slf4j:jul-to-slf4j:jar:2.0.18:compile [INFO] | | \- org.springframework.boot:spring-boot-autoconfigure:jar:4.1.1:compile [INFO] | +- org.springframework.boot:spring-boot-jdbc:jar:4.1.1:compile [INFO] | | +- org.springframework.boot:spring-boot-sql:jar:4.1.1:compile [INFO] | | +- org.springframework.boot:spring-boot-transaction:jar:4.1.1:compile [INFO] | | | \- org.springframework.boot:spring-boot-persistence:jar:4.1.1:compile [INFO] | | \- org.springframework:spring-jdbc:jar:7.0.9:compile [INFO] | \- com.zaxxer:HikariCP:jar:7.0.2:compile [INFO] +- org.springframework.boot:spring-boot-starter-webmvc:jar:4.1.1:compile [INFO] | +- org.springframework.boot:spring-boot-starter-jackson:jar:4.1.1:compile [INFO] | | \- org.springframework.boot:spring-boot-jackson:jar:4.1.1:compile [INFO] | | \- tools.jackson.core:jackson-databind:jar:3.1.5:compile [INFO] | | \- tools.jackson.core:jackson-core:jar:3.1.5:compile [INFO] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:4.1.1:compile [INFO] | | +- org.springframework.boot:spring-boot-starter-tomcat-runtime:jar:4.1.1:compile [INFO] | | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:11.0.24:compile [INFO] | | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:11.0.24:compile [INFO] | | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:11.0.24:compile [INFO] | | \- org.springframework.boot:spring-boot-tomcat:jar:4.1.1:compile [INFO] | +- org.springframework.boot:spring-boot-http-converter:jar:4.1.1:compile [INFO] | \- org.springframework.boot:spring-boot-webmvc:jar:4.1.1:compile [INFO] | +- org.springframework.boot:spring-boot-servlet:jar:4.1.1:compile [INFO] | \- org.springframework:spring-webmvc:jar:7.0.9:compile [INFO] | \- org.springframework:spring-expression:jar:7.0.9:compile [INFO] +- org.springframework.cloud:spring-cloud-starter-loadbalancer:jar:5.0.3:compile [INFO] | +- org.springframework.cloud:spring-cloud-starter:jar:5.0.3:compile [INFO] | | \- org.bouncycastle:bcprov-jdk18on:jar:1.85.2:compile [INFO] | +- org.springframework.cloud:spring-cloud-loadbalancer:jar:5.0.3:compile [INFO] | | +- io.projectreactor:reactor-core:jar:3.8.7:compile [INFO] | | | \- org.reactivestreams:reactive-streams:jar:1.0.4:compile [INFO] | | \- io.projectreactor.addons:reactor-extra:jar:3.6.1:compile [INFO] | +- org.springframework.boot:spring-boot-starter-cache:jar:4.1.1:compile [INFO] | | \- org.springframework.boot:spring-boot-cache:jar:4.1.1:compile [INFO] | | \- org.springframework:spring-context-support:jar:7.0.9:compile [INFO] | \- com.stoyanr:evictor:jar:1.0.0:compile [INFO] +- com.mysql:mysql-connector-j:jar:9.7.0:runtime [INFO] +- org.projectlombok:lombok:jar:1.18.46:compile (optional) [INFO] \- org.springframework.boot:spring-boot-starter-webmvc-test:jar:4.1.1:test [INFO] +- org.springframework.boot:spring-boot-starter-jackson-test:jar:4.1.1:test [INFO] +- org.springframework.boot:spring-boot-starter-test:jar:4.1.1:test [INFO] | +- org.springframework.boot:spring-boot-test:jar:4.1.1:test [INFO] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:4.1.1:test [INFO] | +- com.jayway.jsonpath:json-path:jar:2.10.0:test [INFO] | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.5:test [INFO] | | \- jakarta.activation:jakarta.activation-api:jar:2.1.4:test [INFO] | +- net.minidev:json-smart:jar:2.6.0:test [INFO] | | \- net.minidev:accessors-smart:jar:2.6.0:test [INFO] | | \- org.ow2.asm:asm:jar:9.7.1:test [INFO] | +- org.assertj:assertj-core:jar:3.27.7:test [INFO] | +- org.awaitility:awaitility:jar:4.3.0:test [INFO] | +- org.hamcrest:hamcrest:jar:3.0:test [INFO] | +- org.junit.jupiter:junit-jupiter:jar:6.0.3:test [INFO] | | +- org.junit.jupiter:junit-jupiter-api:jar:6.0.3:test [INFO] | | | +- org.opentest4j:opentest4j:jar:1.3.0:test [INFO] | | | +- org.junit.platform:junit-platform-commons:jar:6.0.3:test [INFO] | | | \- org.apiguardian:apiguardian-api:jar:1.1.2:test [INFO] | | +- org.junit.jupiter:junit-jupiter-params:jar:6.0.3:test [INFO] | | \- org.junit.jupiter:junit-jupiter-engine:jar:6.0.3:test [INFO] | | \- org.junit.platform:junit-platform-engine:jar:6.0.3:test [INFO] | +- org.mockito:mockito-core:jar:5.23.0:test [INFO] | | +- net.bytebuddy:byte-buddy-agent:jar:1.18.11:test [INFO] | | \- org.objenesis:objenesis:jar:3.3:test [INFO] | +- org.mockito:mockito-junit-jupiter:jar:5.23.0:test [INFO] | +- org.skyscreamer:jsonassert:jar:1.5.3:test [INFO] | | \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test [INFO] | +- org.springframework:spring-core:jar:7.0.9:compile [INFO] | | \- commons-logging:commons-logging:jar:1.3.6:compile [INFO] | +- org.springframework:spring-test:jar:7.0.9:test [INFO] | \- org.xmlunit:xmlunit-core:jar:2.11.0:test [INFO] +- org.springframework.boot:spring-boot-webmvc-test:jar:4.1.1:test [INFO] | \- org.springframework.boot:spring-boot-web-server:jar:4.1.1:compile [INFO] \- org.springframework.boot:spring-boot-resttestclient:jar:4.1.1:test [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.680 s (Wall Clock) [INFO] Finished at: 2026-09-16T15:41:33+08:00 [INFO] ------------------------------------------------------------------------ ``` - Related: #8161 (proposal), #8162 (seata-server), #8165 (namingserver). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
