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/03/29 13:18:55 UTC

[2/2] activemq-artemis git commit: ARTEMIS-1065 get queue names by routing type

ARTEMIS-1065 get queue names by routing type


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

Branch: refs/heads/master
Commit: ce3adf6fa8d92bd5f8b93f9a2660c62f077566a7
Parents: 9b11914
Author: Justin Bertram <jb...@apache.org>
Authored: Tue Mar 28 20:26:31 2017 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Wed Mar 29 09:18:16 2017 -0400

----------------------------------------------------------------------
 .../core/management/ActiveMQServerControl.java  |  6 +++++
 .../api/core/management/QueueControl.java       |  4 +--
 .../impl/ActiveMQServerControlImpl.java         | 22 ++++++++++-----
 .../core/management/impl/QueueControlImpl.java  |  4 +--
 .../management/ActiveMQServerControlTest.java   | 28 ++++++++++++++++++++
 .../ActiveMQServerControlUsingCoreTest.java     | 11 ++++++++
 .../management/QueueControlUsingCoreTest.java   |  4 +--
 7 files changed, 67 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ce3adf6f/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
index 04af61e..3192609 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/ActiveMQServerControl.java
@@ -396,6 +396,12 @@ public interface ActiveMQServerControl {
    String[] getQueueNames();
 
    /**
+    * Returns the names of the queues created on this server with the given routing-type.
+    */
+   @Attribute(desc = "names of the queues created on this server with the given routing-type (i.e. ANYCAST or MULTICAST)")
+   String[] getQueueNames(String routingType);
+
+   /**
     * Returns the uptime of this server.
     */
    @Attribute(desc = "uptime of this server")

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ce3adf6f/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/QueueControl.java
----------------------------------------------------------------------
diff --git a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/QueueControl.java b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/QueueControl.java
index 11c98ad..1bc28d4 100644
--- a/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/QueueControl.java
+++ b/artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/management/QueueControl.java
@@ -59,8 +59,8 @@ public interface QueueControl {
    /**
     * The routing type of this queue.
     */
-   @Attribute(desc = "The routing type of this queue")
-   byte getRoutingType() throws Exception;
+   @Attribute(desc = "routing type of this queue")
+   String getRoutingType();
 
    /**
     * Returns the filter associated with this queue.

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ce3adf6f/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java
index 734933a..ad90627 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/ActiveMQServerControlImpl.java
@@ -782,18 +782,28 @@ public class ActiveMQServerControlImpl extends AbstractControl implements Active
 
    @Override
    public String[] getQueueNames() {
+      return getQueueNames(null);
+   }
+
+   @Override
+   public String[] getQueueNames(String routingType) {
       checkStarted();
 
       clearIO();
       try {
-         Object[] queues = server.getManagementService().getResources(QueueControl.class);
-         String[] names = new String[queues.length];
-         for (int i = 0; i < queues.length; i++) {
-            QueueControl queue = (QueueControl) queues[i];
-            names[i] = queue.getName();
+         Object[] queueControls = server.getManagementService().getResources(QueueControl.class);
+         List<String> names = new ArrayList<>();
+         for (int i = 0; i < queueControls.length; i++) {
+            QueueControl queueControl = (QueueControl) queueControls[i];
+            if (routingType != null && queueControl.getRoutingType().equals(routingType.toUpperCase())) {
+               names.add(queueControl.getName());
+            } else if (routingType == null) {
+               names.add(queueControl.getName());
+            }
          }
 
-         return names;
+         String[] result = new String[names.size()];
+         return names.toArray(result);
       } finally {
          blockOnIO();
       }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ce3adf6f/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/QueueControlImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/QueueControlImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/QueueControlImpl.java
index f965561..2e886f9 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/QueueControlImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/QueueControlImpl.java
@@ -176,12 +176,12 @@ public class QueueControlImpl extends AbstractControl implements QueueControl {
    }
 
    @Override
-   public byte getRoutingType() throws Exception {
+   public String getRoutingType() {
       checkStarted();
 
       clearIO();
       try {
-         return queue.getRoutingType().getType();
+         return queue.getRoutingType().toString();
       } finally {
          blockOnIO();
       }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ce3adf6f/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
index 7d84e1f..526a5ae 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
@@ -393,6 +393,34 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
    }
 
    @Test
+   public void testGetQueueNamesWithRoutingType() throws Exception {
+      SimpleString address = RandomUtil.randomSimpleString();
+      SimpleString anycastName = RandomUtil.randomSimpleString();
+      SimpleString multicastName = RandomUtil.randomSimpleString();
+
+      ActiveMQServerControl serverControl = createManagementControl();
+
+      // due to replication, there can be another queue created for replicating
+      // management operations
+
+      Assert.assertFalse(ActiveMQServerControlTest.contains(anycastName.toString(), serverControl.getQueueNames()));
+      Assert.assertFalse(ActiveMQServerControlTest.contains(multicastName.toString(), serverControl.getQueueNames()));
+
+      serverControl.createQueue(address.toString(), RoutingType.ANYCAST.toString(), anycastName.toString(), null, true, -1, false, true);
+      Assert.assertTrue(ActiveMQServerControlTest.contains(anycastName.toString(), serverControl.getQueueNames(RoutingType.ANYCAST.toString())));
+      Assert.assertFalse(ActiveMQServerControlTest.contains(anycastName.toString(), serverControl.getQueueNames(RoutingType.MULTICAST.toString())));
+
+      serverControl.createQueue(address.toString(), RoutingType.MULTICAST.toString(), multicastName.toString(), null, true, -1, false, true);
+      Assert.assertTrue(ActiveMQServerControlTest.contains(multicastName.toString(), serverControl.getQueueNames(RoutingType.MULTICAST.toString())));
+      Assert.assertFalse(ActiveMQServerControlTest.contains(multicastName.toString(), serverControl.getQueueNames(RoutingType.ANYCAST.toString())));
+
+      serverControl.destroyQueue(anycastName.toString());
+      serverControl.destroyQueue(multicastName.toString());
+      Assert.assertFalse(ActiveMQServerControlTest.contains(anycastName.toString(), serverControl.getQueueNames()));
+      Assert.assertFalse(ActiveMQServerControlTest.contains(multicastName.toString(), serverControl.getQueueNames()));
+   }
+
+   @Test
    public void testGetAddressNames() throws Exception {
       SimpleString address = RandomUtil.randomSimpleString();
       SimpleString name = RandomUtil.randomSimpleString();

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ce3adf6f/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java
index d2ebe8d..75e72fd 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlUsingCoreTest.java
@@ -261,6 +261,17 @@ public class ActiveMQServerControlUsingCoreTest extends ActiveMQServerControlTes
          }
 
          @Override
+         public String[] getQueueNames(String routingType) {
+            try {
+               return (String[]) proxy.invokeOperation("getQueueNames", routingType);
+            } catch (Exception e) {
+               e.printStackTrace();
+            }
+
+            return null;
+         }
+
+         @Override
          public String getUptime() {
             return null;
          }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/ce3adf6f/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/QueueControlUsingCoreTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/QueueControlUsingCoreTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/QueueControlUsingCoreTest.java
index e96b5cb..f778ef6 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/QueueControlUsingCoreTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/QueueControlUsingCoreTest.java
@@ -172,8 +172,8 @@ public class QueueControlUsingCoreTest extends QueueControlTest {
          }
 
          @Override
-         public byte getRoutingType() throws Exception {
-            return  (byte) proxy.retrieveAttributeValue("routingType");
+         public String getRoutingType() {
+            return (String) proxy.retrieveAttributeValue("routingType");
          }
 
          @Override