This is an automated email from the ASF dual-hosted git repository.
tabish pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new cf9f8fc44f ARTEMIS-5688 set routing-type when creating MQTT
subscription queue
cf9f8fc44f is described below
commit cf9f8fc44ff4630ae1c644adf21f19317deea32a
Author: Justin Bertram <[email protected]>
AuthorDate: Thu Oct 2 16:08:26 2025 -0500
ARTEMIS-5688 set routing-type when creating MQTT subscription queue
---
.../core/protocol/mqtt/MQTTSubscriptionManager.java | 2 +-
.../artemis/tests/integration/mqtt5/MQTT5Test.java | 14 ++++++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git
a/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTSubscriptionManager.java
b/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTSubscriptionManager.java
index 933bc429cf..16a188d47b 100644
---
a/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTSubscriptionManager.java
+++
b/artemis-protocols/artemis-mqtt-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/mqtt/MQTTSubscriptionManager.java
@@ -184,7 +184,7 @@ public class MQTTSubscriptionManager {
*/
boolean durable = session.getVersion() == MQTTVersion.MQTT_5 ||
(session.getVersion() != MQTTVersion.MQTT_5 && !session.isClean());
if (addressInfo.getRoutingTypes().contains(RoutingType.MULTICAST)) {
- return
session.getServerSession().createQueue(QueueConfiguration.of(queue).setAddress(addressInfo.getName()).setFilterString(getMessageFilter(addressInfo.getName())).setDurable(durable));
+ return
session.getServerSession().createQueue(QueueConfiguration.of(queue).setAddress(addressInfo.getName()).setRoutingType(RoutingType.MULTICAST).setFilterString(getMessageFilter(addressInfo.getName())).setDurable(durable));
}
if (addressInfo.getRoutingTypes().contains(RoutingType.ANYCAST)) {
diff --git
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt5/MQTT5Test.java
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt5/MQTT5Test.java
index f66af71846..83e7092957 100644
---
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt5/MQTT5Test.java
+++
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/mqtt5/MQTT5Test.java
@@ -924,4 +924,18 @@ public class MQTT5Test extends MQTT5TestSupport {
producer.connect();
assertEquals(2, server.getActiveMQServerControl().getSessionCount());
}
+
+ @Test
+ @Timeout(DEFAULT_TIMEOUT_SEC)
+ public void testSubscriptionQueueRoutingType() throws Exception {
+ String topic = getName();
+ String clientID = "myClientId";
+ server.getAddressSettingsRepository().addMatch(topic, new
AddressSettings().setDefaultQueueRoutingType(RoutingType.ANYCAST));
+
+ MqttClient subscriber = createPahoClient(clientID);
+ subscriber.connect();
+ subscriber.subscribe(topic, AT_LEAST_ONCE);
+ // ensure the subscription queue uses multicast even though the default
is anycast
+ assertEquals(RoutingType.MULTICAST, getSubscriptionQueue(topic,
clientID).getRoutingType());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact