You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2017/07/18 20:17:11 UTC

[2/3] activemq-artemis git commit: ARTEMIS-1290 QueueQuery add prefix on address 2

ARTEMIS-1290 QueueQuery add prefix on address 2


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/e742de7d
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/e742de7d
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/e742de7d

Branch: refs/heads/master
Commit: e742de7d6e7ecf4af367d21de5285cfe91f7322b
Parents: 34df3af
Author: Martyn Taylor <mt...@redhat.com>
Authored: Tue Jul 18 19:43:23 2017 +0100
Committer: Clebert Suconic <cl...@apache.org>
Committed: Tue Jul 18 16:16:42 2017 -0400

----------------------------------------------------------------------
 .../protocol/core/impl/wireformat/QueueAbstractPacket.java  | 9 +++++++++
 .../activemq/artemis/core/server/QueueQueryResult.java      | 4 ++++
 .../core/protocol/core/ServerSessionPacketHandler.java      | 9 +++++++--
 3 files changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/e742de7d/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/QueueAbstractPacket.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/QueueAbstractPacket.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/QueueAbstractPacket.java
index 767cd0c..641d7cc 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/QueueAbstractPacket.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/protocol/core/impl/wireformat/QueueAbstractPacket.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.api.core.SimpleString;
 import org.apache.activemq.artemis.core.protocol.core.impl.PacketImpl;
 
@@ -108,4 +109,12 @@ public abstract class QueueAbstractPacket extends PacketImpl {
    public QueueAbstractPacket(byte type) {
       super(type);
    }
+
+   public static SimpleString getOldPrefixedAddress(SimpleString address, RoutingType routingType) {
+      switch (routingType) {
+         case MULTICAST: return OLD_TOPIC_PREFIX.concat(address);
+         case ANYCAST: return OLD_QUEUE_PREFIX.concat(address);
+         default: return address;
+      }
+   }
 }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/e742de7d/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/server/QueueQueryResult.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/server/QueueQueryResult.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/server/QueueQueryResult.java
index 3fd818d..cf88d62 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/server/QueueQueryResult.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/core/server/QueueQueryResult.java
@@ -138,4 +138,8 @@ public class QueueQueryResult {
    public int getMaxConsumers() {
       return maxConsumers;
    }
+
+   public void setAddress(SimpleString address) {
+      this.address = address;
+   }
 }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/e742de7d/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java
index 06fb288..88a6c2c 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java
@@ -92,10 +92,10 @@ import org.apache.activemq.artemis.core.server.LargeServerMessage;
 import org.apache.activemq.artemis.core.server.QueueQueryResult;
 import org.apache.activemq.artemis.core.server.ServerSession;
 import org.apache.activemq.artemis.spi.core.remoting.Connection;
-import org.apache.activemq.artemis.utils.actors.Actor;
-import org.apache.activemq.artemis.utils.actors.OrderedExecutorFactory;
 import org.apache.activemq.artemis.utils.SimpleFuture;
 import org.apache.activemq.artemis.utils.SimpleFutureImpl;
+import org.apache.activemq.artemis.utils.actors.Actor;
+import org.apache.activemq.artemis.utils.actors.OrderedExecutorFactory;
 import org.jboss.logging.Logger;
 
 import static org.apache.activemq.artemis.core.protocol.core.impl.PacketImpl.CREATE_ADDRESS;
@@ -387,6 +387,11 @@ public class ServerSessionPacketHandler implements ChannelHandler {
                   requiresResponse = true;
                   SessionQueueQueryMessage request = (SessionQueueQueryMessage) packet;
                   QueueQueryResult result = session.executeQueueQuery(request.getQueueName(remotingConnection.getClientVersion()));
+
+                  if (remotingConnection.getClientVersion() < PacketImpl.ADDRESSING_CHANGE_VERSION) {
+                     result.setAddress(SessionQueueQueryMessage.getOldPrefixedAddress(result.getAddress(), result.getRoutingType()));
+                  }
+
                   if (channel.supports(PacketImpl.SESS_QUEUEQUERY_RESP_V3)) {
                      response = new SessionQueueQueryResponseMessage_V3(result);
                   } else if (channel.supports(PacketImpl.SESS_QUEUEQUERY_RESP_V2)) {