Skip to content

Commit a1f7479

Browse files
authored
Merge pull request #1665 from rabbitmq/netty-5-x
Backport Netty frame handler to 5.x.x-stable
2 parents 82f9aa3 + d358447 commit a1f7479

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+3666
-2355
lines changed

.github/workflows/test-rabbitmq-alphas.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,17 @@ jobs:
4343
RABBITMQ_IMAGE: ${{ matrix.rabbitmq-image }}
4444
- name: Get dependencies
4545
run: make deps
46-
- name: Test with NIO
46+
- name: Test with Netty
4747
run: |
48-
./mvnw verify -P use-nio -Drabbitmqctl.bin=DOCKER:rabbitmq0 \
48+
./mvnw verify -Dio.layer=netty -Drabbitmqctl.bin=DOCKER:rabbitmq0 \
4949
-Dtest-broker.A.nodename=rabbit@node0 -Dtest-broker.B.nodename=rabbit@node1 \
5050
-Dca.certificate=./tls-gen/basic/result/ca_certificate.pem \
5151
-Dclient.certificate=./tls-gen/basic/result/client_$(hostname)_certificate.pem \
5252
-Dmaven.javadoc.skip=true \
5353
--no-transfer-progress
5454
- name: Test with blocking IO
5555
run: |
56-
./mvnw verify -Drabbitmqctl.bin=DOCKER:rabbitmq0 \
56+
./mvnw verify -Dio.layer=socket -Drabbitmqctl.bin=DOCKER:rabbitmq0 \
5757
-Dtest-broker.A.nodename=rabbit@node0 -Dtest-broker.B.nodename=rabbit@node1 \
5858
-Dca.certificate=./tls-gen/basic/result/ca_certificate.pem \
5959
-Dclient.certificate=./tls-gen/basic/result/client_$(hostname)_certificate.pem \

.github/workflows/test-supported-java-versions-main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,17 @@ jobs:
3939
run: make deps
4040
- name: Show version
4141
run: ./mvnw --version
42-
- name: Test with NIO
42+
- name: Test with Netty
4343
run: |
44-
./mvnw verify -P use-nio -Drabbitmqctl.bin=DOCKER:rabbitmq \
44+
./mvnw verify -Dio.layer=netty -Drabbitmqctl.bin=DOCKER:rabbitmq \
4545
-Dtest-broker.A.nodename=rabbit@$(hostname) -Dmaven.javadoc.skip=true \
4646
-Dca.certificate=./tls-gen/basic/result/ca_certificate.pem \
4747
-Dclient.certificate=./tls-gen/basic/result/client_$(hostname)_certificate.pem \
4848
-Dit.test=ClientTestSuite,FunctionalTestSuite,ServerTestSuite,SslTestSuite \
4949
--no-transfer-progress
5050
- name: Test with blocking IO
5151
run: |
52-
./mvnw verify -Drabbitmqctl.bin=DOCKER:rabbitmq \
52+
./mvnw verify -Dio.layer=socket -Drabbitmqctl.bin=DOCKER:rabbitmq \
5353
-Dtest-broker.A.nodename=rabbit@$(hostname) -Dmaven.javadoc.skip=true \
5454
-Dca.certificate=./tls-gen/basic/result/ca_certificate.pem \
5555
-Dclient.certificate=./tls-gen/basic/result/client_$(hostname)_certificate.pem \

.github/workflows/test.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,21 @@ jobs:
3939
run: ci/start-cluster.sh
4040
- name: Get dependencies
4141
run: make deps
42-
- name: Test with NIO
42+
- name: Test with Netty
4343
run: |
44-
./mvnw verify -P use-nio -Drabbitmqctl.bin=DOCKER:rabbitmq0 \
44+
./mvnw verify -Dio.layer=netty -Drabbitmqctl.bin=DOCKER:rabbitmq0 \
4545
-Dtest-broker.A.nodename=rabbit@node0 -Dtest-broker.B.nodename=rabbit@node1 \
4646
-Dca.certificate=./tls-gen/basic/result/ca_certificate.pem \
4747
-Dclient.certificate=./tls-gen/basic/result/client_$(hostname)_certificate.pem \
4848
-Dmaven.javadoc.skip=true \
4949
--no-transfer-progress
5050
- name: Test with blocking IO
5151
run: |
52-
./mvnw verify -Drabbitmqctl.bin=DOCKER:rabbitmq0 \
52+
./mvnw verify -Dio.layer=socket -Drabbitmqctl.bin=DOCKER:rabbitmq0 \
5353
-Dtest-broker.A.nodename=rabbit@node0 -Dtest-broker.B.nodename=rabbit@node1 \
5454
-Dca.certificate=./tls-gen/basic/result/ca_certificate.pem \
5555
-Dclient.certificate=./tls-gen/basic/result/client_$(hostname)_certificate.pem \
5656
-Dmaven.javadoc.skip=true \
57-
-Dtest-client-cert.password= -Dtest-tls-certs.dir=rabbitmq-configuration/tls \
5857
--no-transfer-progress
5958
- name: Stop cluster
6059
run: docker compose --file ci/cluster/docker-compose.yml down

pom.xml

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656

5757
<spotless.check.skip>true</spotless.check.skip>
5858
<slf4j.version>1.7.36</slf4j.version>
59+
<netty.version>4.2.3.Final</netty.version>
5960
<metrics.version>4.2.33</metrics.version>
6061
<micrometer.version>1.15.2</micrometer.version>
6162
<opentelemetry.version>1.52.0</opentelemetry.version>
@@ -245,30 +246,6 @@
245246
</build>
246247
</profile>
247248

248-
<!--
249-
Profile to activate the NIO mode in the test suite:
250-
mvn verify -P use-nio
251-
-->
252-
<profile>
253-
<id>use-nio</id>
254-
<build>
255-
<plugins>
256-
<plugin>
257-
<groupId>org.apache.maven.plugins</groupId>
258-
<artifactId>maven-failsafe-plugin</artifactId>
259-
<version>${maven.failsafe.plugin.version}</version>
260-
<configuration>
261-
<systemPropertyVariables>
262-
<net.bytebuddy.experimental>true</net.bytebuddy.experimental>
263-
<use.nio>true</use.nio>
264-
</systemPropertyVariables>
265-
<argLine>${test-arguments}</argLine>
266-
</configuration>
267-
</plugin>
268-
</plugins>
269-
</build>
270-
</profile>
271-
272249
<profile>
273250
<!--
274251
The "snapshots" Maven profile is used to push release artifacts to a
@@ -401,6 +378,21 @@
401378
<artifactId>slf4j-api</artifactId>
402379
<version>${slf4j.version}</version>
403380
</dependency>
381+
<dependency>
382+
<groupId>io.netty</groupId>
383+
<artifactId>netty-transport</artifactId>
384+
<version>${netty.version}</version>
385+
</dependency>
386+
<dependency>
387+
<groupId>io.netty</groupId>
388+
<artifactId>netty-codec</artifactId>
389+
<version>${netty.version}</version>
390+
</dependency>
391+
<dependency>
392+
<groupId>io.netty</groupId>
393+
<artifactId>netty-handler</artifactId>
394+
<version>${netty.version}</version>
395+
</dependency>
404396
<dependency>
405397
<groupId>io.dropwizard.metrics</groupId>
406398
<artifactId>metrics-core</artifactId>
@@ -509,6 +501,20 @@
509501
<scope>test</scope>
510502
<optional>true</optional>
511503
</dependency>
504+
<dependency>
505+
<groupId>io.netty</groupId>
506+
<artifactId>netty-transport-native-kqueue</artifactId>
507+
<version>${netty.version}</version>
508+
<classifier>osx-aarch_64</classifier>
509+
<scope>test</scope>
510+
</dependency>
511+
<dependency>
512+
<groupId>io.netty</groupId>
513+
<artifactId>netty-transport-native-epoll</artifactId>
514+
<version>${netty.version}</version>
515+
<classifier>linux-x86_64</classifier>
516+
<scope>test</scope>
517+
</dependency>
512518

513519
</dependencies>
514520

@@ -768,8 +774,13 @@
768774
<configuration>
769775
<java>
770776
<includes>
777+
<include>src/main/java/com/rabbitmq/client/ConnectionFactory.java</include>
778+
<include>src/main/java/com/rabbitmq/client/impl/NettyFrameHandlerFactory.java</include>
771779
<include>src/main/java/com/rabbitmq/client/observation/**/*.java</include>
772780
<include>src/test/java/com/rabbitmq/client/test/functional/MicrometerObservationCollectorMetrics.java</include>
781+
<include>src/test/java/com/rabbitmq/client/test/NettyTest.java</include>
782+
<include>src/test/java/com/rabbitmq/client/test/ProtocolVersionMismatch.java</include>
783+
<include>src/test/java/com/rabbitmq/client/test/TestUtils.java</include>
773784
</includes>
774785
<googleJavaFormat>
775786
<version>${google-java-format.version}</version>

0 commit comments

Comments
 (0)