Skip to content

Commit 82abc12

Browse files
fix(deps): update dependency io.netty:netty-transport-native-epoll to v4.2.2.final (#1321)
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Simon Schrottner <simon.schrottner@dynatrace.com>
1 parent 19a4b03 commit 82abc12

File tree

4 files changed

+18
-10
lines changed

4 files changed

+18
-10
lines changed

providers/flagd/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
<!-- we only support unix sockets on linux, via epoll native lib -->
6565
<groupId>io.netty</groupId>
6666
<artifactId>netty-transport-native-epoll</artifactId>
67-
<version>4.1.119.Final</version>
67+
<version>4.2.2.Final</version>
6868
<!-- TODO: with 5+ (still alpha), arm is support and we should package multiple versions -->
6969
<classifier>linux-x86_64</classifier>
7070
</dependency>

providers/flagd/src/main/java/dev/openfeature/contrib/providers/flagd/resolver/common/ChannelBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88
import io.grpc.Status.Code;
99
import io.grpc.netty.GrpcSslContexts;
1010
import io.grpc.netty.NettyChannelBuilder;
11+
import io.netty.channel.MultiThreadIoEventLoopGroup;
1112
import io.netty.channel.epoll.Epoll;
1213
import io.netty.channel.epoll.EpollDomainSocketChannel;
13-
import io.netty.channel.epoll.EpollEventLoopGroup;
14+
import io.netty.channel.epoll.EpollIoHandler;
1415
import io.netty.channel.unix.DomainSocketAddress;
1516
import io.netty.handler.ssl.SslContextBuilder;
1617
import java.io.File;
@@ -103,10 +104,9 @@ public static ManagedChannel nettyChannel(final FlagdOptions options) {
103104
if (!Epoll.isAvailable()) {
104105
throw new IllegalStateException("unix socket cannot be used", Epoll.unavailabilityCause());
105106
}
106-
107107
return NettyChannelBuilder.forAddress(new DomainSocketAddress(options.getSocketPath()))
108108
.keepAliveTime(keepAliveMs, TimeUnit.MILLISECONDS)
109-
.eventLoopGroup(new EpollEventLoopGroup())
109+
.eventLoopGroup(new MultiThreadIoEventLoopGroup(EpollIoHandler.newFactory()))
110110
.channelType(EpollDomainSocketChannel.class)
111111
.usePlaintext()
112112
.defaultServiceConfig(SERVICE_CONFIG_WITH_RETRY)

providers/flagd/src/test/java/dev/openfeature/contrib/providers/flagd/resolver/common/ChannelBuilderTest.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@
2121
import io.grpc.ManagedChannel;
2222
import io.grpc.netty.GrpcSslContexts;
2323
import io.grpc.netty.NettyChannelBuilder;
24+
import io.netty.channel.IoHandlerFactory;
25+
import io.netty.channel.MultiThreadIoEventLoopGroup;
2426
import io.netty.channel.epoll.Epoll;
2527
import io.netty.channel.epoll.EpollDomainSocketChannel;
26-
import io.netty.channel.epoll.EpollEventLoopGroup;
28+
import io.netty.channel.epoll.EpollIoHandler;
2729
import io.netty.channel.unix.DomainSocketAddress;
2830
import io.netty.handler.ssl.SslContextBuilder;
2931
import java.io.File;
@@ -44,10 +46,12 @@ class ChannelBuilderTest {
4446
@EnabledOnOs(OS.LINUX)
4547
void testNettyChannel_withSocketPath() {
4648
try (MockedStatic<Epoll> epollMock = mockStatic(Epoll.class);
49+
MockedStatic<EpollIoHandler> nativeMock = mockStatic(EpollIoHandler.class);
4750
MockedStatic<NettyChannelBuilder> nettyMock = mockStatic(NettyChannelBuilder.class)) {
4851

4952
// Mocks
5053
epollMock.when(Epoll::isAvailable).thenReturn(true);
54+
nativeMock.when(EpollIoHandler::newFactory).thenReturn(mock(IoHandlerFactory.class));
5155
NettyChannelBuilder mockBuilder = mock(NettyChannelBuilder.class);
5256
ManagedChannel mockChannel = mock(ManagedChannel.class);
5357

@@ -56,7 +60,8 @@ void testNettyChannel_withSocketPath() {
5660
.thenReturn(mockBuilder);
5761

5862
when(mockBuilder.keepAliveTime(anyLong(), any(TimeUnit.class))).thenReturn(mockBuilder);
59-
when(mockBuilder.eventLoopGroup(any(EpollEventLoopGroup.class))).thenReturn(mockBuilder);
63+
when(mockBuilder.eventLoopGroup(any(MultiThreadIoEventLoopGroup.class)))
64+
.thenReturn(mockBuilder);
6065
when(mockBuilder.channelType(EpollDomainSocketChannel.class)).thenReturn(mockBuilder);
6166
when(mockBuilder.defaultServiceConfig(any())).thenReturn(mockBuilder);
6267
when(mockBuilder.maxRetryAttempts(anyInt())).thenReturn(mockBuilder);
@@ -77,7 +82,7 @@ void testNettyChannel_withSocketPath() {
7782
assertThat(channel).isEqualTo(mockChannel);
7883
nettyMock.verify(() -> NettyChannelBuilder.forAddress(new DomainSocketAddress("/path/to/socket")));
7984
verify(mockBuilder).keepAliveTime(1000, TimeUnit.MILLISECONDS);
80-
verify(mockBuilder).eventLoopGroup(any(EpollEventLoopGroup.class));
85+
verify(mockBuilder).eventLoopGroup(any(MultiThreadIoEventLoopGroup.class));
8186
verify(mockBuilder).channelType(EpollDomainSocketChannel.class);
8287
verify(mockBuilder).usePlaintext();
8388
verify(mockBuilder).build();
@@ -88,10 +93,12 @@ void testNettyChannel_withSocketPath() {
8893
@EnabledOnOs(OS.LINUX)
8994
void testNettyChannel_withSocketPath_withRetryPolicy() {
9095
try (MockedStatic<Epoll> epollMock = mockStatic(Epoll.class);
96+
MockedStatic<EpollIoHandler> nativeMock = mockStatic(EpollIoHandler.class);
9197
MockedStatic<NettyChannelBuilder> nettyMock = mockStatic(NettyChannelBuilder.class)) {
9298

9399
// Mocks
94100
epollMock.when(Epoll::isAvailable).thenReturn(true);
101+
nativeMock.when(EpollIoHandler::newFactory).thenReturn(mock(IoHandlerFactory.class));
95102
NettyChannelBuilder mockBuilder = mock(NettyChannelBuilder.class);
96103
ManagedChannel mockChannel = mock(ManagedChannel.class);
97104

@@ -100,7 +107,8 @@ void testNettyChannel_withSocketPath_withRetryPolicy() {
100107
.thenReturn(mockBuilder);
101108

102109
when(mockBuilder.keepAliveTime(anyLong(), any(TimeUnit.class))).thenReturn(mockBuilder);
103-
when(mockBuilder.eventLoopGroup(any(EpollEventLoopGroup.class))).thenReturn(mockBuilder);
110+
when(mockBuilder.eventLoopGroup(any(MultiThreadIoEventLoopGroup.class)))
111+
.thenReturn(mockBuilder);
104112
when(mockBuilder.channelType(EpollDomainSocketChannel.class)).thenReturn(mockBuilder);
105113
when(mockBuilder.defaultServiceConfig(ChannelBuilder.SERVICE_CONFIG_WITH_RETRY))
106114
.thenReturn(mockBuilder);
@@ -121,7 +129,7 @@ void testNettyChannel_withSocketPath_withRetryPolicy() {
121129
assertThat(channel).isEqualTo(mockChannel);
122130
nettyMock.verify(() -> NettyChannelBuilder.forAddress(new DomainSocketAddress("/path/to/socket")));
123131
verify(mockBuilder).keepAliveTime(1000, TimeUnit.MILLISECONDS);
124-
verify(mockBuilder).eventLoopGroup(any(EpollEventLoopGroup.class));
132+
verify(mockBuilder).eventLoopGroup(any(MultiThreadIoEventLoopGroup.class));
125133
verify(mockBuilder).channelType(EpollDomainSocketChannel.class);
126134
verify(mockBuilder).defaultServiceConfig(ChannelBuilder.SERVICE_CONFIG_WITH_RETRY);
127135
verify(mockBuilder).usePlaintext();

0 commit comments

Comments
 (0)