Skip to content

Commit af520cc

Browse files
authored
Upgrade to Netty 4.2 (#2112)
1 parent 420474c commit af520cc

File tree

7 files changed

+29
-25
lines changed

7 files changed

+29
-25
lines changed

client/src/main/java/org/asynchttpclient/netty/channel/ChannelManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ public ChannelManager(final AsyncHttpClientConfig config, Timer nettyTimer) {
165165
transportFactory = new EpollTransportFactory();
166166
} else if (isInstanceof(eventLoopGroup, "io.netty.channel.kqueue.KQueueEventLoopGroup")) {
167167
transportFactory = new KQueueTransportFactory();
168-
} else if (isInstanceof(eventLoopGroup, "io.netty.incubator.channel.uring.IOUringEventLoopGroup")) {
169-
transportFactory = new IoUringIncubatorTransportFactory();
168+
} else if (isInstanceof(eventLoopGroup, "io.netty.channel.uring.IOUringEventLoopGroup")) {
169+
transportFactory = new IoUringTransportFactory();
170170
} else {
171171
throw new IllegalArgumentException("Unknown event loop group " + eventLoopGroup.getClass().getSimpleName());
172172
}
@@ -190,8 +190,8 @@ public ChannelManager(final AsyncHttpClientConfig config, Timer nettyTimer) {
190190
// We will check if Epoll is available or not. If available, return EpollTransportFactory.
191191
// If none of the condition matches then no native transport is available, and we will throw an exception.
192192
if (!PlatformDependent.isWindows()) {
193-
if (IoUringIncubatorTransportFactory.isAvailable() && !config.isUseOnlyEpollNativeTransport()) {
194-
return new IoUringIncubatorTransportFactory();
193+
if (IoUringTransportFactory.isAvailable() && !config.isUseOnlyEpollNativeTransport()) {
194+
return new IoUringTransportFactory();
195195
} else if (EpollTransportFactory.isAvailable()) {
196196
return new EpollTransportFactory();
197197
}
Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,31 @@
1515
*/
1616
package org.asynchttpclient.netty.channel;
1717

18-
import io.netty.incubator.channel.uring.IOUring;
19-
import io.netty.incubator.channel.uring.IOUringEventLoopGroup;
20-
import io.netty.incubator.channel.uring.IOUringSocketChannel;
18+
import io.netty.channel.MultiThreadIoEventLoopGroup;
19+
import io.netty.channel.uring.IoUring;
20+
import io.netty.channel.uring.IoUringIoHandler;
21+
import io.netty.channel.uring.IoUringSocketChannel;
2122

2223
import java.util.concurrent.ThreadFactory;
2324

24-
class IoUringIncubatorTransportFactory implements TransportFactory<IOUringSocketChannel, IOUringEventLoopGroup> {
25+
class IoUringTransportFactory implements TransportFactory<IoUringSocketChannel, MultiThreadIoEventLoopGroup> {
2526

2627
static boolean isAvailable() {
2728
try {
28-
Class.forName("io.netty.incubator.channel.uring.IOUring");
29+
Class.forName("io.netty.channel.uring.IoUring");
2930
} catch (ClassNotFoundException e) {
3031
return false;
3132
}
32-
return IOUring.isAvailable();
33+
return IoUring.isAvailable();
3334
}
3435

3536
@Override
36-
public IOUringSocketChannel newChannel() {
37-
return new IOUringSocketChannel();
37+
public IoUringSocketChannel newChannel() {
38+
return new IoUringSocketChannel();
3839
}
3940

4041
@Override
41-
public IOUringEventLoopGroup newEventLoopGroup(int ioThreadsCount, ThreadFactory threadFactory) {
42-
return new IOUringEventLoopGroup(ioThreadsCount, threadFactory);
42+
public MultiThreadIoEventLoopGroup newEventLoopGroup(int ioThreadsCount, ThreadFactory threadFactory) {
43+
return new MultiThreadIoEventLoopGroup(ioThreadsCount, threadFactory, IoUringIoHandler.newFactory());
4344
}
4445
}

client/src/test/java/org/asynchttpclient/DefaultAsyncHttpClientTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
package org.asynchttpclient;
1717

1818
import io.github.artsok.RepeatedIfExceptionsTest;
19+
import io.netty.channel.MultiThreadIoEventLoopGroup;
1920
import io.netty.channel.epoll.EpollEventLoopGroup;
2021
import io.netty.channel.kqueue.KQueueEventLoopGroup;
21-
import io.netty.incubator.channel.uring.IOUringEventLoopGroup;
2222
import io.netty.util.Timer;
2323
import org.asynchttpclient.cookie.CookieEvictionTask;
2424
import org.asynchttpclient.cookie.CookieStore;
@@ -61,7 +61,7 @@ public void testNativeTransportWithoutEpollOnly() throws Exception {
6161
AsyncHttpClientConfig config = config().setUseNativeTransport(true).setUseOnlyEpollNativeTransport(false).build();
6262
try (DefaultAsyncHttpClient client = (DefaultAsyncHttpClient) asyncHttpClient(config)) {
6363
assertDoesNotThrow(() -> client.prepareGet("https://www.google.com").execute().get());
64-
assertInstanceOf(IOUringEventLoopGroup.class, client.channelManager().getEventLoopGroup());
64+
assertInstanceOf(MultiThreadIoEventLoopGroup.class, client.channelManager().getEventLoopGroup());
6565
}
6666
}
6767

client/src/test/java/org/asynchttpclient/MultipleHeaderTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import io.netty.handler.codec.http.HttpHeaders;
1717
import org.junit.jupiter.api.AfterEach;
1818
import org.junit.jupiter.api.BeforeEach;
19+
import org.junit.jupiter.api.Disabled;
1920

2021
import javax.net.ServerSocketFactory;
2122
import java.io.BufferedReader;
@@ -39,6 +40,7 @@
3940
/**
4041
* @author Hubert Iwaniuk
4142
*/
43+
@Disabled("New Netty Release Prevent Invalid Line in HTTP Header")
4244
public class MultipleHeaderTest extends AbstractBasicTest {
4345
private static ExecutorService executorService;
4446
private static ServerSocket serverSocket;

client/src/test/java/org/asynchttpclient/netty/NettyTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import io.netty.channel.epoll.Epoll;
44
import io.netty.channel.kqueue.KQueue;
5+
import io.netty.channel.uring.IoUring;
56
import io.netty.handler.codec.compression.Brotli;
67
import io.netty.handler.codec.compression.Zstd;
7-
import io.netty.incubator.channel.uring.IOUring;
88
import org.junit.jupiter.api.Test;
99
import org.junit.jupiter.api.condition.EnabledOnOs;
1010
import org.junit.jupiter.api.condition.OS;
@@ -21,7 +21,7 @@ public void epollIsAvailableOnLinux() {
2121
@Test
2222
@EnabledOnOs(OS.LINUX)
2323
public void ioUringIsAvailableOnLinux() {
24-
assertTrue(IOUring.isAvailable());
24+
assertTrue(IoUring.isAvailable());
2525
}
2626

2727
@Test

client/src/test/resources/logback-test.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
<logger name="org.eclipse" level="INFO"/>
99
<logger name="org.apache" level="INFO"/>
10+
<logger name="com.github.dockerjava" level="INFO"/>
1011

1112
<root level="DEBUG">
1213
<appender-ref ref="CONSOLE"/>

pom.xml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<maven.compiler.target>11</maven.compiler.target>
4646
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4747

48-
<netty.version>4.1.119.Final</netty.version>
48+
<netty.version>4.2.5.Final</netty.version>
4949
<netty.iouring>0.0.26.Final</netty.iouring>
5050
<brotli4j.version>1.18.0</brotli4j.version>
5151
<slf4j.version>2.0.16</slf4j.version>
@@ -206,17 +206,17 @@
206206
</dependency>
207207

208208
<dependency>
209-
<groupId>io.netty.incubator</groupId>
210-
<artifactId>netty-incubator-transport-native-io_uring</artifactId>
211-
<version>${netty.iouring}</version>
209+
<groupId>io.netty</groupId>
210+
<artifactId>netty-transport-native-io_uring</artifactId>
211+
<version>${netty.version}</version>
212212
<classifier>linux-x86_64</classifier>
213213
<optional>true</optional>
214214
</dependency>
215215

216216
<dependency>
217-
<groupId>io.netty.incubator</groupId>
218-
<artifactId>netty-incubator-transport-native-io_uring</artifactId>
219-
<version>${netty.iouring}</version>
217+
<groupId>io.netty</groupId>
218+
<artifactId>netty-transport-native-io_uring</artifactId>
219+
<version>${netty.version}</version>
220220
<classifier>linux-aarch_64</classifier>
221221
<optional>true</optional>
222222
</dependency>

0 commit comments

Comments
 (0)