From e5fddb83fc2369fc0b71a68e040f4f82ac33ad34 Mon Sep 17 00:00:00 2001 From: Andrey Litvitski Date: Mon, 1 Dec 2025 19:54:31 +0300 Subject: [PATCH] Avoid deprecated EpollEventLoopGroup usage Replaces EpollEventLoopGroup with MultiThreadIoEventLoopGroup configured via EpollIoHandler factory. This aligns with the Netty 5 IO handler architecture and avoids usage of deprecated epoll transport APIs. Signed-off-by: Andrey Litvitski --- .../grpc/client/NettyGrpcChannelFactory.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-grpc-core/src/main/java/org/springframework/grpc/client/NettyGrpcChannelFactory.java b/spring-grpc-core/src/main/java/org/springframework/grpc/client/NettyGrpcChannelFactory.java index 3d805baa..49ee592a 100644 --- a/spring-grpc-core/src/main/java/org/springframework/grpc/client/NettyGrpcChannelFactory.java +++ b/spring-grpc-core/src/main/java/org/springframework/grpc/client/NettyGrpcChannelFactory.java @@ -20,14 +20,16 @@ import io.grpc.ChannelCredentials; import io.grpc.netty.NettyChannelBuilder; +import io.netty.channel.MultiThreadIoEventLoopGroup; import io.netty.channel.epoll.EpollDomainSocketChannel; -import io.netty.channel.epoll.EpollEventLoopGroup; +import io.netty.channel.epoll.EpollIoHandler; import io.netty.channel.unix.DomainSocketAddress; /** * {@link GrpcChannelFactory} that creates Netty-based gRPC channels. * * @author Chris Bono + * @author Andrey Litvitski */ public class NettyGrpcChannelFactory extends DefaultGrpcChannelFactory { @@ -48,7 +50,7 @@ protected NettyChannelBuilder newChannelBuilder(String target, ChannelCredential target = target.substring(5); return NettyChannelBuilder.forAddress(new DomainSocketAddress(target)) .channelType(EpollDomainSocketChannel.class) - .eventLoopGroup(new EpollEventLoopGroup()); + .eventLoopGroup(new MultiThreadIoEventLoopGroup(EpollIoHandler.newFactory())); } return NettyChannelBuilder.forTarget(target, credentials); }