Skip to content

Commit cbd4ea9

Browse files
authored
Upgrade Pulsar from 2.10.0 to 3.4.0 (#1377)
1 parent ab471c6 commit cbd4ea9

File tree

9 files changed

+54
-34
lines changed

9 files changed

+54
-34
lines changed

mqtt-impl/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>pulsar-protocol-handler-mqtt-parent</artifactId>
2222
<groupId>io.streamnative.pulsar.handlers</groupId>
23-
<version>2.10.0.0-rc4</version>
23+
<version>3.4.0-SNAPSHOT</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626
<artifactId>pulsar-protocol-handler-mqtt</artifactId>

mqtt-impl/src/main/java/io/streamnative/pulsar/handlers/mqtt/AbstractQosPublishHandler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import io.streamnative.pulsar.handlers.mqtt.utils.PulsarTopicUtils;
2626
import java.util.Optional;
2727
import java.util.concurrent.CompletableFuture;
28-
import org.apache.bookkeeper.mledger.impl.PositionImpl;
28+
import org.apache.bookkeeper.mledger.Position;
2929
import org.apache.commons.lang3.StringUtils;
3030
import org.apache.pulsar.broker.PulsarService;
3131
import org.apache.pulsar.broker.service.BrokerServiceException;
@@ -63,7 +63,7 @@ protected CompletableFuture<Optional<Topic>> getTopicReference(String mqttTopicN
6363
});
6464
}
6565

66-
protected CompletableFuture<PositionImpl> writeToPulsarTopic(Connection connection, MqttPublishMessage msg) {
66+
protected CompletableFuture<Position> writeToPulsarTopic(Connection connection, MqttPublishMessage msg) {
6767
return writeToPulsarTopic(connection, msg, false);
6868
}
6969

@@ -73,7 +73,7 @@ protected CompletableFuture<PositionImpl> writeToPulsarTopic(Connection connecti
7373
* @param checkSubscription Check if the subscription exists, throw #{MQTTNoMatchingSubscriberException}
7474
* if the subscription does not exist;
7575
*/
76-
protected CompletableFuture<PositionImpl> writeToPulsarTopic(Connection connection, MqttPublishMessage msg,
76+
protected CompletableFuture<Position> writeToPulsarTopic(Connection connection, MqttPublishMessage msg,
7777
boolean checkSubscription) {
7878
TopicAliasManager topicAliasManager = connection.getTopicAliasManager();
7979
String producerName = connection.getClientId();
@@ -102,7 +102,7 @@ protected CompletableFuture<PositionImpl> writeToPulsarTopic(Connection connecti
102102
return getTopicReference(mqttTopicName).thenCompose(topicOp -> topicOp.map(topic -> {
103103
MessageImpl<byte[]> message = toPulsarMsg(configuration, topic, msg.variableHeader().properties(),
104104
msg.payload().nioBuffer());
105-
CompletableFuture<PositionImpl> ret = MessagePublishContext.publishMessages(producerName, message, topic);
105+
CompletableFuture<Position> ret = MessagePublishContext.publishMessages(producerName, message, topic);
106106
message.recycle();
107107
return ret.thenApply(position -> {
108108
if (checkSubscription && topic.getSubscriptions().isEmpty()) {

mqtt-impl/src/main/java/io/streamnative/pulsar/handlers/mqtt/proxy/PulsarServiceLookupHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@
3232
import org.apache.pulsar.broker.service.BrokerServiceException;
3333
import org.apache.pulsar.client.api.AuthenticationFactory;
3434
import org.apache.pulsar.client.api.PulsarClientException;
35-
import org.apache.pulsar.client.impl.Backoff;
36-
import org.apache.pulsar.client.impl.BackoffBuilder;
3735
import org.apache.pulsar.client.impl.PulsarClientImpl;
3836
import org.apache.pulsar.client.impl.conf.ClientConfigurationData;
3937
import org.apache.pulsar.client.util.ExecutorProvider;
4038
import org.apache.pulsar.client.util.ScheduledExecutorProvider;
4139
import org.apache.pulsar.common.naming.TopicName;
40+
import org.apache.pulsar.common.util.Backoff;
41+
import org.apache.pulsar.common.util.BackoffBuilder;
4242
import org.apache.pulsar.common.util.FutureUtil;
4343
import org.apache.pulsar.metadata.api.MetadataCache;
4444
import org.apache.pulsar.policies.data.loadbalancer.LocalBrokerData;

mqtt-impl/src/main/java/io/streamnative/pulsar/handlers/mqtt/support/MQTTBrokerProtocolMethodProcessor.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@
7171
import java.util.stream.Collectors;
7272
import lombok.Getter;
7373
import lombok.extern.slf4j.Slf4j;
74-
import org.apache.bookkeeper.mledger.impl.PositionImpl;
74+
import org.apache.bookkeeper.mledger.Position;
75+
import org.apache.bookkeeper.mledger.PositionFactory;
76+
import org.apache.bookkeeper.mledger.impl.AckSetStateUtil;
7577
import org.apache.pulsar.broker.PulsarService;
7678
import org.apache.pulsar.broker.authentication.AuthenticationDataSource;
7779
import org.apache.pulsar.broker.authorization.AuthorizationService;
@@ -158,15 +160,15 @@ public void processPubAck(MqttAdapterMessage adapter) {
158160
int packetId = msg.variableHeader().messageId();
159161
OutstandingPacket packet = outstandingPacketContainer.remove(packetId);
160162
if (packet != null) {
161-
PositionImpl position;
163+
Position position;
162164
if (packet.isBatch()) {
163165
long[] ackSets = new long[packet.getBatchSize()];
164166
for (int i = 0; i < packet.getBatchSize(); i++) {
165167
ackSets[i] = packet.getBatchIndex() == i ? 0 : 1;
166168
}
167-
position = PositionImpl.get(packet.getLedgerId(), packet.getEntryId(), ackSets);
169+
position = AckSetStateUtil.createPositionWithAckSet(packet.getLedgerId(), packet.getEntryId(), ackSets);
168170
} else {
169-
position = PositionImpl.get(packet.getLedgerId(), packet.getEntryId());
171+
position = PositionFactory.create(packet.getLedgerId(), packet.getEntryId());
170172
}
171173
packet.getConsumer().getSubscription().acknowledgeMessage(Collections.singletonList(position),
172174
CommandAck.AckType.Individual, Collections.emptyMap());

mqtt-impl/src/main/java/io/streamnative/pulsar/handlers/mqtt/support/systemtopic/SystemTopicBasedSystemEventService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@
3131
import org.apache.pulsar.client.api.Message;
3232
import org.apache.pulsar.client.api.MessageId;
3333
import org.apache.pulsar.client.api.PulsarClientException;
34-
import org.apache.pulsar.client.impl.Backoff;
3534
import org.apache.pulsar.client.util.RetryUtil;
3635
import org.apache.pulsar.common.naming.NamespaceName;
3736
import org.apache.pulsar.common.naming.TopicName;
37+
import org.apache.pulsar.common.util.Backoff;
3838
import org.apache.pulsar.common.util.FutureUtil;
3939

4040
/**

mqtt-impl/src/main/java/io/streamnative/pulsar/handlers/mqtt/utils/MessagePublishContext.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020
import java.util.concurrent.CompletableFuture;
2121
import java.util.concurrent.TimeUnit;
2222
import lombok.extern.slf4j.Slf4j;
23-
import org.apache.bookkeeper.mledger.impl.PositionImpl;
23+
import org.apache.bookkeeper.mledger.Position;
24+
import org.apache.bookkeeper.mledger.PositionFactory;
2425
import org.apache.pulsar.broker.service.Topic;
2526
import org.apache.pulsar.broker.service.Topic.PublishContext;
2627
import org.apache.pulsar.client.api.Message;
@@ -34,7 +35,7 @@ public final class MessagePublishContext implements PublishContext {
3435
private String producerName;
3536
private Topic topic;
3637
private long startTimeNs;
37-
private CompletableFuture<PositionImpl> positionFuture;
38+
private CompletableFuture<Position> positionFuture;
3839

3940
/**
4041
* Executed from managed ledger thread when the message is persisted.
@@ -50,13 +51,13 @@ public void completed(Exception exception, long ledgerId, long entryId) {
5051
topic.getName(), ledgerId, entryId);
5152
}
5253
topic.recordAddLatency(System.nanoTime() - startTimeNs, TimeUnit.NANOSECONDS);
53-
positionFuture.complete(PositionImpl.get(ledgerId, entryId));
54+
positionFuture.complete(PositionFactory.create(ledgerId, entryId));
5455
}
5556
recycle();
5657
}
5758

5859
// recycler
59-
public static MessagePublishContext get(CompletableFuture<PositionImpl> positionFuture, String producerName,
60+
public static MessagePublishContext get(CompletableFuture<Position> positionFuture, String producerName,
6061
Topic topic, long startTimeNs) {
6162
MessagePublishContext callback = RECYCLER.get();
6263
callback.positionFuture = positionFuture;
@@ -92,9 +93,9 @@ public void recycle() {
9293
/**
9394
* publish mqtt message to pulsar topic, no batch.
9495
*/
95-
public static CompletableFuture<PositionImpl> publishMessages(String producerName, Message<byte[]> message,
96-
Topic topic) {
97-
CompletableFuture<PositionImpl> future = new CompletableFuture<>();
96+
public static CompletableFuture<Position> publishMessages(String producerName, Message<byte[]> message,
97+
Topic topic) {
98+
CompletableFuture<Position> future = new CompletableFuture<>();
9899

99100
ByteBuf headerAndPayload = messageToByteBuf(message);
100101
topic.publishMessage(headerAndPayload,

pom.xml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2020
<groupId>io.streamnative.pulsar.handlers</groupId>
2121
<artifactId>pulsar-protocol-handler-mqtt-parent</artifactId>
22-
<version>2.10.0.0-rc4</version>
22+
<version>3.4.0-SNAPSHOT</version>
2323
<name>StreamNative :: Pulsar Protocol Handler :: MoP Parent</name>
2424
<description>Parent for MQTT on Pulsar implemented using Pulsar Protocol Handler.</description>
2525

@@ -49,7 +49,7 @@
4949
<mockito.version>2.22.0</mockito.version>
5050
<testng.version>6.14.3</testng.version>
5151
<awaitility.version>4.0.2</awaitility.version>
52-
<pulsar.version>3.2.0-SNAPSHOT</pulsar.version>
52+
<pulsar.version>3.4.0-SNAPSHOT</pulsar.version>
5353
<mqtt.codec.version>4.1.94.Final</mqtt.codec.version>
5454
<log4j2.version>2.18.0</log4j2.version>
5555
<fusesource.client.version>1.16</fusesource.client.version>
@@ -376,12 +376,10 @@
376376
<layout>default</layout>
377377
<url>https://repo1.maven.org/maven2</url>
378378
</repository>
379-
380379
<repository>
381380
<id>snapshot</id>
382381
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
383382
</repository>
384-
385383
<repository>
386384
<snapshots>
387385
<enabled>false</enabled>
@@ -390,5 +388,23 @@
390388
<name>bintray</name>
391389
<url>https://yahoo.bintray.com/maven</url>
392390
</repository>
391+
<repository>
392+
<id>ossrh</id>
393+
<url>https://s01.oss.sonatype.org/service/local/repositories/0/content</url>
394+
</repository>
395+
<repository>
396+
<id>nexus-snapshot</id>
397+
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
398+
</repository>
393399
</repositories>
400+
<distributionManagement>
401+
<snapshotRepository>
402+
<id>ossrh</id>
403+
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
404+
</snapshotRepository>
405+
<repository>
406+
<id>ossrh</id>
407+
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
408+
</repository>
409+
</distributionManagement>
394410
</project>

tests/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>pulsar-protocol-handler-mqtt-parent</artifactId>
2222
<groupId>io.streamnative.pulsar.handlers</groupId>
23-
<version>2.10.0.0-rc4</version>
23+
<version>3.4.0-SNAPSHOT</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626
<artifactId>pulsar-protocol-handler-mqtt-tests</artifactId>

tests/src/test/java/io/streamnative/pulsar/handlers/mqtt/base/MQTTProtocolHandlerTestBase.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import io.netty.channel.EventLoopGroup;
2323
import io.streamnative.pulsar.handlers.mqtt.MQTTCommonConfiguration;
2424
import io.streamnative.pulsar.handlers.mqtt.utils.ConfigurationUtils;
25-
import java.io.IOException;
2625
import java.lang.reflect.Field;
2726
import java.net.URI;
2827
import java.net.URL;
@@ -33,6 +32,7 @@
3332
import java.util.List;
3433
import java.util.Map;
3534
import java.util.Optional;
35+
import java.util.concurrent.CompletableFuture;
3636
import java.util.concurrent.ThreadLocalRandom;
3737
import java.util.concurrent.TimeUnit;
3838
import java.util.function.Predicate;
@@ -459,18 +459,19 @@ public void reallyShutdown() {
459459
private BookKeeperClientFactory mockBookKeeperClientFactory = new BookKeeperClientFactory() {
460460

461461
@Override
462-
public BookKeeper create(ServiceConfiguration conf, MetadataStoreExtended store, EventLoopGroup eventLoopGroup,
463-
Optional<Class<? extends EnsemblePlacementPolicy>> ensemblePlacementPolicyClass,
464-
Map<String, Object> ensemblePlacementPolicyProperties) throws IOException {
465-
return mockBookKeeper;
462+
public CompletableFuture<BookKeeper> create(ServiceConfiguration conf, MetadataStoreExtended store,
463+
EventLoopGroup eventLoopGroup,
464+
Optional<Class<? extends EnsemblePlacementPolicy>> ensemblePlacementPolicyClass,
465+
Map<String, Object> ensemblePlacementPolicyProperties) {
466+
return CompletableFuture.completedFuture(mockBookKeeper);
466467
}
467468

468469
@Override
469-
public BookKeeper create(ServiceConfiguration conf, MetadataStoreExtended store, EventLoopGroup eventLoopGroup,
470-
Optional<Class<? extends EnsemblePlacementPolicy>> ensemblePlacementPolicyClass,
471-
Map<String, Object> ensemblePlacementPolicyProperties, StatsLogger statsLogger)
472-
throws IOException {
473-
return mockBookKeeper;
470+
public CompletableFuture<BookKeeper> create(ServiceConfiguration conf, MetadataStoreExtended store,
471+
EventLoopGroup eventLoopGroup,
472+
Optional<Class<? extends EnsemblePlacementPolicy>> ensemblePlacementPolicyClass,
473+
Map<String, Object> ensemblePlacementPolicyProperties, StatsLogger statsLogger) {
474+
return CompletableFuture.completedFuture(mockBookKeeper);
474475
}
475476

476477
@Override

0 commit comments

Comments
 (0)