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