xjlgod opened a new pull request, #8209:
URL: https://github.com/apache/incubator-seata/pull/8209
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Please make sure you have read and understood the contributing
guidelines -->
- [x] I have read the
[CONTRIBUTING.md](https://github.com/apache/incubator-seata/blob/2.x/CONTRIBUTING.md)
guidelines.
- [x] I have registered the PR
[changes](https://github.com/apache/incubator-seata/tree/2.x/changes).
### Ⅰ. Describe what this PR did
- Upgrade Netty from `4.1.137.Final` to `4.2.15.Final` through the Netty BOM.
- Migrate Seata transport event loops from deprecated Netty 4.1 APIs to the
Netty 4.2 `IoHandler` / `MultiThreadIoEventLoopGroup` APIs.
- Keep the allocator explicitly configured as `pooled`, and remove use of
Netty internal APIs.
- Ensure Seata's Netty BOM takes precedence over Spring Boot dependency
management in server-related modules.
- Align related gRPC/Protobuf dependency management and add required direct
Netty dependencies for the SkyWalking plugin.
- Update the gRPC interceptor test to use an actual `grpc-netty` TCP server
and client.
- Add Chinese and English change-log entries under `changes/`.
### Ⅱ. Does this pull request fix one issue?
No.
### Ⅲ. Why don't you add test cases (unit test/integration test)?
N/A. This PR updates existing tests and executes the relevant test suites.
In particular, `GrpcTest` was migrated from the in-process transport to a
real `grpc-netty` TCP transport, so the test now verifies the Netty-based gRPC
request path. Existing core remoting, HTTP/2, Etcd registry, and
version-compatibility tests were also executed.
### Ⅳ. Describe how to verify it
1. Run the relevant unit tests on JDK 8:
- Core Netty remoting, HTTP/2 handler, channel event, and Netty client
bootstrap tests.
- Etcd registry tests.
- `extensions/rpc/seata-grpc` interceptor tests.
2. Run the cross-version compatibility tests on JDK 21:
- Verify client/server combinations across the old and new versions.
3. Build the release distribution with JDK 25 and the `release-seata`
profile.
4. Inspect the generated server and naming-server distributions:
- All bundled Netty artifacts must resolve to `4.2.15.Final`.
- No `netty-4.1.x` artifacts should remain.
- Startup scripts must retain `-Dio.netty.allocator.type=pooled`.
### Ⅴ. Special notes for reviews
- Netty 4.2 is not intended to coexist with Netty 4.1 in the same runtime
classpath. This PR centralizes version resolution through the Netty BOM and
overrides Spring Boot-managed Netty versions where necessary.
- The migration is intentionally scoped to deprecated event-loop APIs and
direct internal-API usage; business protocol behavior is unchanged.
- The SkyWalking plugin now declares direct `provided` Netty dependencies
because it directly uses Netty `Channel` and `AttributeMap` types.
--
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]