Skip to content

Commit 99b0d51

Browse files
committed
Include QPid ProtonJ2 code to project
1 parent b810b66 commit 99b0d51

File tree

568 files changed

+99486
-27
lines changed

Some content is hidden

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

568 files changed

+99486
-27
lines changed

pom.xml

Lines changed: 146 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,11 @@
4343
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4444
<spotless.check.skip>true</spotless.check.skip>
4545
<slf4j.version>1.7.36</slf4j.version>
46-
<logback.version>1.2.13</logback.version>
47-
<protonj2.version>1.0.0-M21-SNAPSHOT</protonj2.version>
46+
<netty4.version>4.1.110.Final</netty4.version>
47+
<netty4.iouring.version>0.0.25.Final</netty4.iouring.version>
48+
<netty5.version>5.0.0.Alpha5</netty5.version>
4849
<micrometer.version>1.13.0</micrometer.version>
50+
<logback.version>1.2.13</logback.version>
4951
<junit.jupiter.version>5.10.2</junit.jupiter.version>
5052
<assertj.version>3.26.0</assertj.version>
5153
<mockito.version>5.12.0</mockito.version>
@@ -80,25 +82,102 @@
8082
</dependency>
8183

8284
<dependency>
83-
<groupId>org.apache.qpid</groupId>
84-
<artifactId>protonj2-client</artifactId>
85-
<version>${protonj2.version}</version>
85+
<groupId>io.micrometer</groupId>
86+
<artifactId>micrometer-core</artifactId>
87+
<version>${micrometer.version}</version>
88+
<optional>true</optional>
8689
</dependency>
8790

91+
<!-- QPid dependencies -->
92+
<dependency>
93+
<groupId>io.netty</groupId>
94+
<artifactId>netty-buffer</artifactId>
95+
<version>${netty4.version}</version>
96+
</dependency>
97+
<dependency>
98+
<groupId>io.netty</groupId>
99+
<artifactId>netty-common</artifactId>
100+
<version>${netty4.version}</version>
101+
</dependency>
102+
<dependency>
103+
<groupId>io.netty</groupId>
104+
<artifactId>netty-handler</artifactId>
105+
<version>${netty4.version}</version>
106+
</dependency>
107+
<dependency>
108+
<groupId>io.netty</groupId>
109+
<artifactId>netty-transport</artifactId>
110+
<version>${netty4.version}</version>
111+
</dependency>
112+
<dependency>
113+
<groupId>io.netty</groupId>
114+
<artifactId>netty-codec-http</artifactId>
115+
<version>${netty4.version}</version>
116+
</dependency>
117+
<dependency>
118+
<groupId>io.netty</groupId>
119+
<artifactId>netty-transport-native-epoll</artifactId>
120+
<version>${netty4.version}</version>
121+
<classifier>linux-x86_64</classifier>
122+
</dependency>
123+
<dependency>
124+
<groupId>io.netty</groupId>
125+
<artifactId>netty-transport-native-kqueue</artifactId>
126+
<version>${netty4.version}</version>
127+
<classifier>osx-x86_64</classifier>
128+
</dependency>
88129
<dependency>
89-
<groupId>org.apache.qpid</groupId>
90-
<artifactId>protonj2</artifactId>
91-
<version>${protonj2.version}</version>
92-
<scope>system</scope>
93-
<systemPath>${project.basedir}/protonj2-1.0.0-M21-SNAPSHOT.jar</systemPath>
130+
<groupId>io.netty.incubator</groupId>
131+
<artifactId>netty-incubator-transport-native-io_uring</artifactId>
132+
<version>${netty4.iouring.version}</version>
133+
<classifier>linux-x86_64</classifier>
94134
</dependency>
95135

96136
<dependency>
97-
<groupId>io.micrometer</groupId>
98-
<artifactId>micrometer-core</artifactId>
99-
<version>${micrometer.version}</version>
137+
<groupId>io.netty</groupId>
138+
<artifactId>netty5-buffer</artifactId>
139+
<version>${netty5.version}</version>
140+
<optional>true</optional>
141+
</dependency>
142+
<dependency>
143+
<groupId>io.netty</groupId>
144+
<artifactId>netty5-common</artifactId>
145+
<version>${netty5.version}</version>
146+
<optional>true</optional>
147+
</dependency>
148+
<dependency>
149+
<groupId>io.netty</groupId>
150+
<artifactId>netty5-handler</artifactId>
151+
<version>${netty5.version}</version>
152+
<optional>true</optional>
153+
</dependency>
154+
<dependency>
155+
<groupId>io.netty</groupId>
156+
<artifactId>netty5-transport</artifactId>
157+
<version>${netty5.version}</version>
158+
<optional>true</optional>
159+
</dependency>
160+
<dependency>
161+
<groupId>io.netty</groupId>
162+
<artifactId>netty5-codec-http</artifactId>
163+
<version>${netty5.version}</version>
100164
<optional>true</optional>
101165
</dependency>
166+
<dependency>
167+
<groupId>io.netty</groupId>
168+
<artifactId>netty5-transport-native-epoll</artifactId>
169+
<version>${netty5.version}</version>
170+
<optional>true</optional>
171+
<classifier>linux-x86_64</classifier>
172+
</dependency>
173+
<dependency>
174+
<groupId>io.netty</groupId>
175+
<artifactId>netty5-transport-native-kqueue</artifactId>
176+
<version>${netty5.version}</version>
177+
<classifier>osx-x86_64</classifier>
178+
<optional>true</optional>
179+
</dependency>
180+
<!-- End of QPid dependencies -->
102181

103182
<dependency>
104183
<groupId>org.junit.jupiter</groupId>
@@ -416,6 +495,36 @@
416495
</configuration>
417496
</plugin>
418497

498+
<plugin>
499+
<groupId>org.apache.maven.plugins</groupId>
500+
<artifactId>maven-shade-plugin</artifactId>
501+
<version>3.6.0</version>
502+
<executions>
503+
<execution>
504+
<phase>package</phase>
505+
<goals>
506+
<goal>shade</goal>
507+
</goals>
508+
<configuration>
509+
<artifactSet>
510+
<includes>
511+
<include>com.rabbitmq.amqp:amqp-client</include>
512+
</includes>
513+
</artifactSet>
514+
<relocations>
515+
<relocation>
516+
<pattern>org.apache.qpid.protonj2</pattern>
517+
<shadedPattern>com.rabbitmq.qpid.protonj2</shadedPattern>
518+
<includes>
519+
<include>org.apache.qpid.protonj2.**</include>
520+
</includes>
521+
</relocation>
522+
</relocations>
523+
</configuration>
524+
</execution>
525+
</executions>
526+
</plugin>
527+
419528
<plugin>
420529
<groupId>com.github.spotbugs</groupId>
421530
<artifactId>spotbugs-maven-plugin</artifactId>
@@ -427,6 +536,9 @@
427536
<version>${spotbugs.version}</version>
428537
</dependency>
429538
</dependencies>
539+
<configuration>
540+
<onlyAnalyze>com.rabbitmq.-</onlyAnalyze>
541+
</configuration>
430542
<executions>
431543
<execution>
432544
<goals>
@@ -436,6 +548,27 @@
436548
</executions>
437549
</plugin>
438550

551+
<plugin>
552+
<groupId>org.codehaus.mojo</groupId>
553+
<artifactId>build-helper-maven-plugin</artifactId>
554+
<version>3.2.0</version>
555+
<executions>
556+
<execution>
557+
<id>add-source</id>
558+
<phase>generate-sources</phase>
559+
<goals>
560+
<goal>add-source</goal>
561+
</goals>
562+
<configuration>
563+
<sources>
564+
<source>src/main/qpid/</source>
565+
</sources>
566+
</configuration>
567+
</execution>
568+
</executions>
569+
</plugin>
570+
571+
439572
</plugins>
440573

441574
</build>

src/main/java/com/rabbitmq/model/amqp/AmqpPublisher.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.rabbitmq.model.ObservationCollector;
2424
import com.rabbitmq.model.Publisher;
2525
import com.rabbitmq.model.metrics.MetricsCollector;
26-
2726
import java.time.Duration;
2827
import java.util.concurrent.*;
2928
import java.util.concurrent.atomic.AtomicBoolean;
@@ -62,8 +61,8 @@ final class AmqpPublisher extends ResourceBase implements Publisher {
6261
this.destinationSpec = builder.destination();
6362
this.connection = builder.connection();
6463
this.publishTimeout = builder.publishTimeout();
65-
this.sender = this.createSender(builder.connection().nativeSession(), this.address,
66-
this.publishTimeout);
64+
this.sender =
65+
this.createSender(builder.connection().nativeSession(), this.address, this.publishTimeout);
6766
this.metricsCollector = this.connection.metricsCollector();
6867
this.observationCollector = this.connection.observationCollector();
6968
this.state(OPEN);
@@ -127,8 +126,8 @@ public void publish(Message message, Callback callback) {
127126

128127
void recoverAfterConnectionFailure() {
129128
this.connectionInfo = new Utils.ObservationConnectionInfo(this.connection.connectionAddress());
130-
this.sender = this.createSender(this.connection.nativeSession(false), this.address,
131-
this.publishTimeout);
129+
this.sender =
130+
this.createSender(this.connection.nativeSession(false), this.address, this.publishTimeout);
132131
}
133132

134133
@Override
@@ -139,9 +138,13 @@ public void close() {
139138
// internal API
140139

141140
private Sender createSender(Session session, String address, Duration publishTimeout) {
142-
SenderOptions senderOptions = new SenderOptions().deliveryMode(DeliveryMode.AT_LEAST_ONCE)
143-
.sendTimeout(publishTimeout.isNegative() ? ConnectionOptions.INFINITE :
144-
publishTimeout.toMillis());
141+
SenderOptions senderOptions =
142+
new SenderOptions()
143+
.deliveryMode(DeliveryMode.AT_LEAST_ONCE)
144+
.sendTimeout(
145+
publishTimeout.isNegative()
146+
? ConnectionOptions.INFINITE
147+
: publishTimeout.toMillis());
145148
try {
146149
if (address == null) {
147150
return session.openAnonymousSender(senderOptions);

src/main/java/com/rabbitmq/model/amqp/AmqpPublisherBuilder.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.rabbitmq.model.Publisher;
2222
import com.rabbitmq.model.PublisherBuilder;
2323
import com.rabbitmq.model.Resource;
24-
2524
import java.time.Duration;
2625
import java.util.ArrayList;
2726
import java.util.List;
@@ -63,7 +62,6 @@ public PublisherBuilder listeners(Resource.StateListener... listeners) {
6362
return this;
6463
}
6564

66-
6765
public AmqpPublisherBuilder publishTimeout(Duration publishTimeout) {
6866
this.publishTimeout = publishTimeout;
6967
return this;

0 commit comments

Comments
 (0)