You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by mi...@apache.org on 2017/12/12 13:17:37 UTC
[1/4] activemq-artemis git commit: This closes #1696 NO-JIRA fixed
minor regression and broken tests in ActiveMQServerControlImpl
Repository: activemq-artemis
Updated Branches:
refs/heads/master c1bc7a30e -> 70d5e3149
This closes #1696 NO-JIRA fixed minor regression and broken tests in ActiveMQServerControlImpl
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/70d5e314
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/70d5e314
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/70d5e314
Branch: refs/heads/master
Commit: 70d5e31490a23a10e8af696c6d5412dcf7047190
Parents: c1bc7a3 d7b464c
Author: Michael Pearce <mi...@me.com>
Authored: Tue Dec 12 13:17:02 2017 +0000
Committer: Michael Pearce <mi...@me.com>
Committed: Tue Dec 12 13:17:02 2017 +0000
----------------------------------------------------------------------
.../src/main/webapp/plugin/js/connections.js | 12 +-
.../src/main/webapp/plugin/js/consumers.js | 28 +-
.../src/main/webapp/plugin/js/producers.js | 8 +-
.../src/main/webapp/plugin/js/queues.js | 8 +-
.../src/main/webapp/plugin/js/sessions.js | 10 +-
.../impl/ActiveMQServerControlImpl.java | 8 +-
.../impl/view/ActiveMQAbstractView.java | 40 +-
.../core/management/impl/view/AddressView.java | 24 +
.../management/impl/view/ConnectionView.java | 45 +-
.../core/management/impl/view/ConsumerView.java | 53 +-
.../core/management/impl/view/ProducerView.java | 49 +-
.../core/management/impl/view/QueueView.java | 68 ++-
.../core/management/impl/view/SessionView.java | 29 +-
.../ActiveMQServerControlMultiThreadTest.java | 4 +-
.../management/ActiveMQServerControlTest.java | 483 +++++++++++++++++++
.../ActiveMQServerControlUsingCoreTest.java | 2 +-
16 files changed, 785 insertions(+), 86 deletions(-)
----------------------------------------------------------------------
[3/4] activemq-artemis git commit: NO-JIRA fixed checkstyle issues
and added tests
Posted by mi...@apache.org.
NO-JIRA fixed checkstyle issues and added tests
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/d7b464cf
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/d7b464cf
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/d7b464cf
Branch: refs/heads/master
Commit: d7b464cff3bdd805260507066357d4f636ed705a
Parents: f08da81
Author: Pat Fox <pa...@gmail.com>
Authored: Mon Dec 11 22:08:43 2017 +0100
Committer: Michael Pearce <mi...@me.com>
Committed: Tue Dec 12 13:17:02 2017 +0000
----------------------------------------------------------------------
.../impl/view/ActiveMQAbstractView.java | 5 +-
.../core/management/impl/view/AddressView.java | 8 +-
.../management/impl/view/ConnectionView.java | 2 +-
.../core/management/impl/view/ConsumerView.java | 2 +-
.../core/management/impl/view/ProducerView.java | 1 +
.../core/management/impl/view/QueueView.java | 5 +-
.../core/management/impl/view/SessionView.java | 2 +-
.../management/ActiveMQServerControlTest.java | 363 ++++++++++++++++++-
8 files changed, 357 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/d7b464cf/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java
index 29f5fcf..7a2d347 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java
@@ -19,7 +19,6 @@ package org.apache.activemq.artemis.core.management.impl.view;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
-import java.lang.reflect.Method;
import java.util.Collection;
import java.util.List;
@@ -101,8 +100,8 @@ public abstract class ActiveMQAbstractView<T> {
@Override
public int compare(T left, T right) {
try {
- Object leftValue = getField(left, sortColumn);;
- Object rightValue = getField(right, sortColumn);;
+ Object leftValue = getField(left, sortColumn);
+ Object rightValue = getField(right, sortColumn);
if (leftValue instanceof Comparable && rightValue instanceof Comparable) {
if (sortOrder.equals("desc")) {
return ((Comparable) rightValue).compareTo(leftValue);
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/d7b464cf/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java
index 58bf52d..c5e0629 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java
@@ -17,16 +17,9 @@
package org.apache.activemq.artemis.core.management.impl.view;
import javax.json.JsonObjectBuilder;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
import org.apache.activemq.artemis.core.management.impl.view.predicate.AddressFilterPredicate;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
-import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.core.server.impl.AddressInfo;
-import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.utils.JsonLoader;
public class AddressView extends ActiveMQAbstractView<AddressInfo> {
@@ -63,6 +56,7 @@ public class AddressView extends ActiveMQAbstractView<AddressInfo> {
return obj;
}
+ @Override
public Object getField(AddressInfo address, String fieldName) {
if (address == null) {
return null;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/d7b464cf/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
index 1baf039..b8ed6e3 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
@@ -24,7 +24,6 @@ import java.util.Set;
import org.apache.activemq.artemis.core.management.impl.view.predicate.ConnectionFilterPredicate;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
-import org.apache.activemq.artemis.core.server.ServerConsumer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.utils.JsonLoader;
@@ -69,6 +68,7 @@ public class ConnectionView extends ActiveMQAbstractView<RemotingConnection> {
.add("sessionCount", server.getSessions(connection.getID().toString()).size());
}
+ @Override
public Object getField(RemotingConnection connection, String fieldName) {
List<ServerSession> sessions = server.getSessions(connection.getID().toString());
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/d7b464cf/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
index 1eac72f..52604a8 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
@@ -22,7 +22,6 @@ import java.util.Date;
import org.apache.activemq.artemis.core.management.impl.view.predicate.ConsumerFilterPredicate;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.ServerConsumer;
-import org.apache.activemq.artemis.core.server.ServerProducer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.utils.JsonLoader;
@@ -66,6 +65,7 @@ public class ConsumerView extends ActiveMQAbstractView<ServerConsumer> {
return obj;
}
+ @Override
public Object getField(ServerConsumer consumer, String fieldName) {
ServerSession session = server.getSessionByID(consumer.getSessionID());
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/d7b464cf/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
index af19d74..977aec8 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
@@ -62,6 +62,7 @@ public class ProducerView extends ActiveMQAbstractView<ServerProducer> {
return obj;
}
+ @Override
public Object getField(ServerProducer producer, String fieldName) {
ServerSession session = server.getSessionByID(producer.getSessionID());
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/d7b464cf/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
index 1f8ac0a..eb0f1a4 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
@@ -17,15 +17,11 @@
package org.apache.activemq.artemis.core.management.impl.view;
import javax.json.JsonObjectBuilder;
-
-import java.util.Date;
-
import org.apache.activemq.artemis.api.core.SimpleString;
import org.apache.activemq.artemis.api.core.management.QueueControl;
import org.apache.activemq.artemis.core.management.impl.view.predicate.QueueFilterPredicate;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.Queue;
-import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.utils.JsonLoader;
public class QueueView extends ActiveMQAbstractView<QueueControl> {
@@ -68,6 +64,7 @@ public class QueueView extends ActiveMQAbstractView<QueueControl> {
return obj;
}
+ @Override
public Object getField(QueueControl queue, String fieldName) {
Queue q = server.locateQueue(new SimpleString(queue.getName()));
switch (fieldName) {
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/d7b464cf/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
index 35fc8b8..a1d85d8 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
@@ -21,7 +21,6 @@ import java.util.Date;
import org.apache.activemq.artemis.core.management.impl.view.predicate.SessionFilterPredicate;
import org.apache.activemq.artemis.core.server.ServerSession;
-import org.apache.activemq.artemis.core.server.impl.AddressInfo;
import org.apache.activemq.artemis.utils.JsonLoader;
public class SessionView extends ActiveMQAbstractView<ServerSession> {
@@ -49,6 +48,7 @@ public class SessionView extends ActiveMQAbstractView<ServerSession> {
return obj;
}
+ @Override
public Object getField(ServerSession session, String fieldName) {
switch (fieldName) {
case "id":
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/d7b464cf/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 55d7254..2185e07 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
@@ -53,6 +53,7 @@ import org.apache.activemq.artemis.api.core.management.QueueControl;
import org.apache.activemq.artemis.api.core.management.RoleInfo;
import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient;
import org.apache.activemq.artemis.api.jms.JMSFactoryType;
+import org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl;
import org.apache.activemq.artemis.core.client.impl.ClientSessionImpl;
import org.apache.activemq.artemis.core.config.Configuration;
import org.apache.activemq.artemis.core.config.impl.SecurityConfiguration;
@@ -1543,6 +1544,119 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
}
@Test
+ public void testListQueuesOrder() throws Exception {
+ SimpleString queueName1 = new SimpleString("my_queue_1");
+ SimpleString queueName2 = new SimpleString("my_queue_2");
+ SimpleString queueName3 = new SimpleString("my_queue_3");
+
+ ActiveMQServerControl serverControl = createManagementControl();
+
+ server.addAddressInfo(new AddressInfo(queueName1, RoutingType.ANYCAST));
+ server.createQueue(queueName1, RoutingType.ANYCAST, queueName1, new SimpleString("filter1"),null,true,
+ false, false,20,false,false);
+ Thread.sleep(500);
+ server.addAddressInfo(new AddressInfo(queueName2, RoutingType.ANYCAST));
+ server.createQueue(queueName2, RoutingType.ANYCAST, queueName2, new SimpleString("filter3"), null,true,
+ false, true,40,false,false);
+ Thread.sleep(500);
+ server.addAddressInfo(new AddressInfo(queueName3, RoutingType.ANYCAST));
+ server.createQueue(queueName3, RoutingType.ANYCAST, queueName3, new SimpleString("filter0"),null,true,
+ false, false,10,false,false);
+
+ //test default order
+ String filterString = createJsonFilter("name", "CONTAINS", "my_queue");
+ String queuesAsJsonString = serverControl.listQueues(filterString, 1, 50);
+ JsonObject queuesAsJsonObject = JsonUtil.readJsonObject(queuesAsJsonString);
+ JsonArray array = (JsonArray) queuesAsJsonObject.get("data");
+
+ Assert.assertEquals("number of queues returned from query", 3, array.size());
+ Assert.assertEquals("queue1 default Order", queueName1.toString(), array.getJsonObject(0).getString("name"));
+ Assert.assertEquals("queue2 default Order", queueName2.toString(), array.getJsonObject(1).getString("name"));
+ Assert.assertEquals("queue3 default Order", queueName3.toString(), array.getJsonObject(2).getString("name"));
+
+ //test ordered by id desc
+ filterString = createJsonFilter("name", "CONTAINS", "my_queue", "id", "desc");
+ queuesAsJsonString = serverControl.listQueues(filterString, 1, 50);
+ queuesAsJsonObject = JsonUtil.readJsonObject(queuesAsJsonString);
+ array = (JsonArray) queuesAsJsonObject.get("data");
+
+ Assert.assertEquals("number of queues returned from query", 3, array.size());
+ Assert.assertEquals("queue3 ordered by id", queueName3.toString(), array.getJsonObject(0).getString("name"));
+ Assert.assertEquals("queue2 ordered by id", queueName2.toString(), array.getJsonObject(1).getString("name"));
+ Assert.assertEquals("queue1 ordered by id", queueName1.toString(), array.getJsonObject(2).getString("name"));
+
+ //ordered by address desc
+ filterString = createJsonFilter("name", "CONTAINS", "my_queue", "address", "desc");
+ queuesAsJsonString = serverControl.listQueues(filterString, 1, 50);
+ queuesAsJsonObject = JsonUtil.readJsonObject(queuesAsJsonString);
+ array = (JsonArray) queuesAsJsonObject.get("data");
+
+ Assert.assertEquals("number of queues returned from query", 3, array.size());
+ Assert.assertEquals("queue3 ordered by address", queueName3.toString(), array.getJsonObject(0).getString("name"));
+ Assert.assertEquals("queue2 ordered by address", queueName2.toString(), array.getJsonObject(1).getString("name"));
+ Assert.assertEquals("queue1 ordered by address", queueName1.toString(), array.getJsonObject(2).getString("name"));
+
+ //ordered by auto create desc
+ filterString = createJsonFilter("name", "CONTAINS", "my_queue", "autoCreated", "asc");
+ queuesAsJsonString = serverControl.listQueues(filterString, 1, 50);
+ queuesAsJsonObject = JsonUtil.readJsonObject(queuesAsJsonString);
+ array = (JsonArray) queuesAsJsonObject.get("data");
+
+ Assert.assertEquals("number of queues returned from query", 3, array.size());
+ Assert.assertEquals("pos1 ordered by autocreate", "false", array.getJsonObject(0).getString("autoCreated"));
+ Assert.assertEquals("pos2 ordered by autocreate", "false", array.getJsonObject(1).getString("autoCreated"));
+ Assert.assertEquals("pos3 ordered by autocreate", "true", array.getJsonObject(2).getString("autoCreated"));
+
+ //ordered by filter desc
+ filterString = createJsonFilter("name", "CONTAINS", "my_queue", "filter", "desc");
+ queuesAsJsonString = serverControl.listQueues(filterString, 1, 50);
+ queuesAsJsonObject = JsonUtil.readJsonObject(queuesAsJsonString);
+ array = (JsonArray) queuesAsJsonObject.get("data");
+
+ Assert.assertEquals("number of queues returned from query", 3, array.size());
+ Assert.assertEquals("queue2 ordered by filter", queueName2.toString(), array.getJsonObject(0).getString("name"));
+ Assert.assertEquals("queue1 ordered by filter", queueName1.toString(), array.getJsonObject(1).getString("name"));
+ Assert.assertEquals("queue3 ordered by filter", queueName3.toString(), array.getJsonObject(2).getString("name"));
+
+ //ordered by max consumers asc
+ filterString = createJsonFilter("name", "CONTAINS", "my_queue", "maxConsumers", "asc");
+ queuesAsJsonString = serverControl.listQueues(filterString, 1, 50);
+ queuesAsJsonObject = JsonUtil.readJsonObject(queuesAsJsonString);
+ array = (JsonArray) queuesAsJsonObject.get("data");
+
+ Assert.assertEquals("number of queues returned from query", 3, array.size());
+ Assert.assertEquals("queue3 ordered by filter", queueName3.toString(), array.getJsonObject(0).getString("name"));
+ Assert.assertEquals("queue1 ordered by filter", queueName1.toString(), array.getJsonObject(1).getString("name"));
+ Assert.assertEquals("queue2 ordered by filter", queueName2.toString(), array.getJsonObject(2).getString("name"));
+
+ //ordering between the pages
+ //page 1
+ filterString = createJsonFilter("name", "CONTAINS", "my_queue", "address", "desc");
+ queuesAsJsonString = serverControl.listQueues(filterString, 1, 1);
+ queuesAsJsonObject = JsonUtil.readJsonObject(queuesAsJsonString);
+ array = (JsonArray) queuesAsJsonObject.get("data");
+ Assert.assertEquals("number of queues returned from query", 1, array.size());
+ Assert.assertEquals("queue3 ordered by page", queueName3.toString(), array.getJsonObject(0).getString("name"));
+
+ //page 2
+ filterString = createJsonFilter("name", "CONTAINS", "my_queue", "address", "desc");
+ queuesAsJsonString = serverControl.listQueues(filterString, 2, 1);
+ queuesAsJsonObject = JsonUtil.readJsonObject(queuesAsJsonString);
+ array = (JsonArray) queuesAsJsonObject.get("data");
+ Assert.assertEquals("number of queues returned from query", 1, array.size());
+ Assert.assertEquals("queue2 ordered by page", queueName2.toString(), array.getJsonObject(0).getString("name"));
+
+ //page 3
+ filterString = createJsonFilter("name", "CONTAINS", "my_queue", "address", "desc");
+ queuesAsJsonString = serverControl.listQueues(filterString, 3, 1);
+ queuesAsJsonObject = JsonUtil.readJsonObject(queuesAsJsonString);
+ array = (JsonArray) queuesAsJsonObject.get("data");
+ Assert.assertEquals("number of queues returned from query", 1, array.size());
+ Assert.assertEquals("queue1 ordered by page", queueName1.toString(), array.getJsonObject(0).getString("name"));
+
+ }
+
+ @Test
public void testListQueuesNumericFilter() throws Exception {
SimpleString queueName1 = new SimpleString("my_queue_one");
SimpleString queueName2 = new SimpleString("my_queue_two");
@@ -1855,6 +1969,61 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
}
@Test
+ public void testListAddressOrder() throws Exception {
+
+ SimpleString queueName1 = new SimpleString("my_queue_one");
+ SimpleString queueName2 = new SimpleString("my_queue_two");
+ SimpleString queueName3 = new SimpleString("other_queue_three");
+ SimpleString queueName4 = new SimpleString("other_queue_four");
+
+ SimpleString addressName1 = new SimpleString("my_address_1");
+ SimpleString addressName2 = new SimpleString("my_address_2");
+ SimpleString addressName3 = new SimpleString("my_address_3");
+
+ ActiveMQServerControl serverControl = createManagementControl();
+
+ server.addAddressInfo(new AddressInfo(addressName1, RoutingType.ANYCAST));
+ server.createQueue(addressName1, RoutingType.ANYCAST, queueName1, null, false, false);
+ server.addAddressInfo(new AddressInfo(addressName2, RoutingType.ANYCAST));
+ server.addAddressInfo(new AddressInfo(addressName3, RoutingType.ANYCAST));
+ server.createQueue(addressName3, RoutingType.ANYCAST, queueName3, null, false, false);
+ server.createQueue(addressName3, RoutingType.ANYCAST, queueName4, null, false, false);
+
+ //test default order
+ String filterString = createJsonFilter("name", "CONTAINS", "my");
+ String addressesAsJsonString = serverControl.listAddresses(filterString, 1, 50);
+ JsonObject addressesAsJsonObject = JsonUtil.readJsonObject(addressesAsJsonString);
+ JsonArray array = (JsonArray) addressesAsJsonObject.get("data");
+
+ Assert.assertEquals("number addresses returned", 3, array.size());
+ Assert.assertEquals("address1 default order", addressName1.toString(), array.getJsonObject(0).getString("name"));
+ Assert.assertEquals("address2 default order", addressName2.toString(), array.getJsonObject(1).getString("name"));
+ Assert.assertEquals("address3 default order", addressName3.toString(), array.getJsonObject(2).getString("name"));
+
+ //test ordered by name desc
+ filterString = createJsonFilter("name", "CONTAINS", "my", "name", "desc");
+ addressesAsJsonString = serverControl.listAddresses(filterString, 1, 50);
+ addressesAsJsonObject = JsonUtil.readJsonObject(addressesAsJsonString);
+ array = (JsonArray) addressesAsJsonObject.get("data");
+
+ Assert.assertEquals("number addresses returned", 3, array.size());
+ Assert.assertEquals("address3 ordered by name", addressName3.toString(), array.getJsonObject(0).getString("name"));
+ Assert.assertEquals("address2 ordered by name", addressName2.toString(), array.getJsonObject(1).getString("name"));
+ Assert.assertEquals("address1 ordered by name", addressName1.toString(), array.getJsonObject(2).getString("name"));
+
+ //test ordered by queue count asc
+ filterString = createJsonFilter("name", "CONTAINS", "my", "queueCount", "asc");
+ addressesAsJsonString = serverControl.listAddresses(filterString, 1, 50);
+ addressesAsJsonObject = JsonUtil.readJsonObject(addressesAsJsonString);
+ array = (JsonArray) addressesAsJsonObject.get("data");
+
+ Assert.assertEquals("number addresses returned", 3, array.size());
+ Assert.assertEquals("address2 ordered by queue count", addressName2.toString(), array.getJsonObject(0).getString("name"));
+ Assert.assertEquals("address1 ordered by queue count", addressName1.toString(), array.getJsonObject(1).getString("name"));
+ Assert.assertEquals("address3 ordered by queue count", addressName3.toString(), array.getJsonObject(2).getString("name"));
+ }
+
+ @Test
public void testListConsumers() throws Exception {
SimpleString queueName1 = new SimpleString("my_queue_one");
SimpleString queueName2 = new SimpleString("my_queue_two");
@@ -1946,6 +2115,54 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
}
@Test
+ public void testListConsumersOrder() throws Exception {
+ SimpleString queueName1 = new SimpleString("my_queue_one");
+ SimpleString addressName1 = new SimpleString("my_address_one");
+
+ ActiveMQServerControl serverControl = createManagementControl();
+
+ server.addAddressInfo(new AddressInfo(addressName1, RoutingType.ANYCAST));
+ server.createQueue(addressName1, RoutingType.ANYCAST, queueName1, null, false, false);
+
+ try (ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory csf = createSessionFactory(locator);) {
+
+ ClientSessionImpl session1 = (ClientSessionImpl) csf.createSession();
+ ClientSessionImpl session2 = (ClientSessionImpl) csf.createSession();
+ ClientSessionImpl session3 = (ClientSessionImpl) csf.createSession();
+
+ //sleep - test compares creationTimes
+ ClientConsumer consumer_s1 = session1.createConsumer(queueName1);
+ Thread.sleep(500);
+ ClientConsumer consumer_s2 = session2.createConsumer(queueName1);
+ Thread.sleep(500);
+ ClientConsumer consumer_s3 = session3.createConsumer(queueName1);
+
+ //test default Order
+ String filterString = createJsonFilter("queue", "EQUALS", queueName1.toString());
+ String consumersAsJsonString = serverControl.listConsumers(filterString, 1, 50);
+ JsonObject consumersAsJsonObject = JsonUtil.readJsonObject(consumersAsJsonString);
+ JsonArray array = (JsonArray) consumersAsJsonObject.get("data");
+ Assert.assertEquals("number of consumers returned from query", 3, array.size());
+
+ Assert.assertEquals("Consumer1 default order", session1.getName(), array.getJsonObject(0).getString("session"));
+ Assert.assertEquals("Consumer2 default order", session2.getName(), array.getJsonObject(1).getString("session"));
+ Assert.assertEquals("Consumer3 default order", session3.getName(), array.getJsonObject(2).getString("session"));
+
+ //test ordered by creationTime
+ filterString = createJsonFilter("queue", "EQUALS", queueName1.toString(), "creationTime", "desc");
+ consumersAsJsonString = serverControl.listConsumers(filterString, 1, 50);
+ consumersAsJsonObject = JsonUtil.readJsonObject(consumersAsJsonString);
+ array = (JsonArray) consumersAsJsonObject.get("data");
+ Assert.assertEquals("number of consumers returned from query", 3, array.size());
+
+ Assert.assertEquals("Consumer3 creation time", session3.getName(), array.getJsonObject(0).getString("session"));
+ Assert.assertEquals("Consumer2 creation time", session2.getName(), array.getJsonObject(1).getString("session"));
+ Assert.assertEquals("Consumer1 creation time", session1.getName(), array.getJsonObject(2).getString("session"));
+
+ }
+ }
+
+ @Test
public void testListSessions() throws Exception {
SimpleString queueName1 = new SimpleString("my_queue_one");
SimpleString addressName1 = new SimpleString("my_address_one");
@@ -1958,28 +2175,78 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
// create some consumers
try (ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory csf = createSessionFactory(locator);) {
- ClientSession session1 = csf.createSession();
- ClientSession session2 = csf.createSession();
+ ClientSessionImpl session1 = (ClientSessionImpl) csf.createSession();
+ Thread.sleep(500);
+ ClientSessionImpl session2 = (ClientSessionImpl) csf.createSession();
+ Thread.sleep(500);
+ ClientSessionImpl session3 = (ClientSessionImpl) csf.createSession();
+ ClientConsumer consumer1_s1 = session1.createConsumer(queueName1);
+ ClientConsumer consumer2_s1 = session1.createConsumer(queueName1);
- ClientConsumer consumer1_q1 = session1.createConsumer(queueName1);
- ClientConsumer consumer2_q1 = session2.createConsumer(queueName1);
+ ClientConsumer consumer1_s2 = session2.createConsumer(queueName1);
+ ClientConsumer consumer2_s2 = session2.createConsumer(queueName1);
+ ClientConsumer consumer3_s2 = session2.createConsumer(queueName1);
+ ClientConsumer consumer4_s2 = session2.createConsumer(queueName1);
- //bring back all sessions
- String filterString = createJsonFilter("", "", "");
+ ClientConsumer consumer1_s3 = session3.createConsumer(queueName1);
+ ClientConsumer consumer2_s3 = session3.createConsumer(queueName1);
+ ClientConsumer consumer3_s3 = session3.createConsumer(queueName1);
+
+ String filterString = createJsonFilter("CONSUMER_COUNT", "GREATER_THAN", "1");
String sessionsAsJsonString = serverControl.listSessions(filterString, 1, 50);
JsonObject sessionsAsJsonObject = JsonUtil.readJsonObject(sessionsAsJsonString);
JsonArray array = (JsonArray) sessionsAsJsonObject.get("data");
- Assert.assertTrue("number of sessions returned from query", 2 <= array.size());
+
+ Assert.assertEquals("number of sessions returned from query", 3, array.size());
JsonObject jsonSession = array.getJsonObject(0);
//check all fields
Assert.assertNotEquals("id", "", jsonSession.getString("id"));
Assert.assertEquals("user", "", jsonSession.getString("user"));
Assert.assertNotEquals("creationTime", "", jsonSession.getString("creationTime"));
- Assert.assertEquals("consumerCount", 1, jsonSession.getInt("consumerCount"));
+ Assert.assertEquals("consumerCount", 2, jsonSession.getInt("consumerCount"));
Assert.assertTrue("producerCount", 0 <= jsonSession.getInt("producerCount"));
Assert.assertNotEquals("connectionID", "", jsonSession.getString("connectionID"));
+
+ //check default order
+ Assert.assertEquals("session1 location", session1.getName(), array.getJsonObject(0).getString("id"));
+ Assert.assertEquals("session2 location", session2.getName(), array.getJsonObject(1).getString("id"));
+ Assert.assertEquals("session3 location", session3.getName(), array.getJsonObject(2).getString("id"));
+
+ //bring back session ordered by consumer count
+ filterString = createJsonFilter("CONSUMER_COUNT", "GREATER_THAN", "1", "consumerCount", "asc");
+ sessionsAsJsonString = serverControl.listSessions(filterString, 1, 50);
+ sessionsAsJsonObject = JsonUtil.readJsonObject(sessionsAsJsonString);
+ array = (JsonArray) sessionsAsJsonObject.get("data");
+
+ Assert.assertTrue("number of sessions returned from query", 3 == array.size());
+ Assert.assertEquals("session1 ordered by consumer", session1.getName(), array.getJsonObject(0).getString("id"));
+ Assert.assertEquals("session3 ordered by consumer", session3.getName(), array.getJsonObject(1).getString("id"));
+ Assert.assertEquals("session2 ordered by consumer", session2.getName(), array.getJsonObject(2).getString("id"));
+
+ //bring back session ordered by consumer Count
+ filterString = createJsonFilter("CONSUMER_COUNT", "GREATER_THAN", "1", "consumerCount", "asc");
+ sessionsAsJsonString = serverControl.listSessions(filterString, 1, 50);
+ sessionsAsJsonObject = JsonUtil.readJsonObject(sessionsAsJsonString);
+ array = (JsonArray) sessionsAsJsonObject.get("data");
+
+ Assert.assertTrue("number of sessions returned from query", 3 == array.size());
+ Assert.assertEquals("session1 ordered by consumer", session1.getName(), array.getJsonObject(0).getString("id"));
+ Assert.assertEquals("session3 ordered by consumer", session3.getName(), array.getJsonObject(1).getString("id"));
+ Assert.assertEquals("session2 ordered by consumer", session2.getName(), array.getJsonObject(2).getString("id"));
+
+ //bring back session ordered by creation time (desc)
+ filterString = createJsonFilter("CONSUMER_COUNT", "GREATER_THAN", "1", "creationTime", "desc");
+ sessionsAsJsonString = serverControl.listSessions(filterString, 1, 50);
+ sessionsAsJsonObject = JsonUtil.readJsonObject(sessionsAsJsonString);
+ array = (JsonArray) sessionsAsJsonObject.get("data");
+
+ Assert.assertTrue("number of sessions returned from query", 3 == array.size());
+ Assert.assertEquals("session3 ordered by creationTime", session3.getName(), array.getJsonObject(0).getString("id"));
+ Assert.assertEquals("session2 ordered by creationTime", session2.getName(), array.getJsonObject(1).getString("id"));
+ Assert.assertEquals("session1 ordered by creationTime", session1.getName(), array.getJsonObject(2).getString("id"));
+
}
}
@@ -1993,18 +2260,38 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
server.addAddressInfo(new AddressInfo(addressName1, RoutingType.ANYCAST));
server.createQueue(addressName1, RoutingType.ANYCAST, queueName1, null, false, false);
+ ClientSessionFactoryImpl csf = null;
+ ClientSessionFactoryImpl csf2 = null;
+ ClientSessionFactoryImpl csf3 = null;
+
// create some consumers
- try (ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory csf = createSessionFactory(locator);) {
+ try (ServerLocator locator = createInVMNonHALocator()) {
- ClientSession session1 = csf.createSession();
+ //sleep as test compares creationTime
+ csf = (ClientSessionFactoryImpl) createSessionFactory(locator);
+ Thread.sleep(500);
+ csf2 = (ClientSessionFactoryImpl) createSessionFactory(locator);
+ Thread.sleep(500);
+ csf3 = (ClientSessionFactoryImpl) createSessionFactory(locator);
- //bring back all connection
- String filterString = createJsonFilter("", "", "");
+ ClientSession session1_c1 = csf.createSession();
+ ClientSession session2_c1 = csf.createSession();
+
+ ClientSession session1_c2 = csf2.createSession();
+ ClientSession session2_c2 = csf2.createSession();
+ ClientSession session3_c2 = csf2.createSession();
+ ClientSession session4_c2 = csf2.createSession();
+
+ ClientSession session1_c4 = csf3.createSession();
+ ClientSession session2_c4 = csf3.createSession();
+ ClientSession session3_c4 = csf3.createSession();
+
+ String filterString = createJsonFilter("SESSION_COUNT", "GREATER_THAN", "1");
String connectionsAsJsonString = serverControl.listConnections(filterString, 1, 50);
JsonObject connectionsAsJsonObject = JsonUtil.readJsonObject(connectionsAsJsonString);
JsonArray array = (JsonArray) connectionsAsJsonObject.get("data");
- Assert.assertTrue("number of connections returned from query", 1 <= array.size());
+ Assert.assertEquals("number of connections returned from query", 3, array.size());
JsonObject jsonConnection = array.getJsonObject(0);
//check all fields
@@ -2016,7 +2303,44 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
Assert.assertNotEquals("protocol", "", jsonConnection.getString("protocol"));
Assert.assertEquals("clientID", "", jsonConnection.getString("clientID"));
Assert.assertNotEquals("localAddress", "", jsonConnection.getString("localAddress"));
- Assert.assertEquals("sessionCount", 1, jsonConnection.getInt("sessionCount"));
+ Assert.assertEquals("sessionCount", 2, jsonConnection.getInt("sessionCount"));
+
+ //check default order
+ Assert.assertEquals("connection1 default Order", csf.getConnection().getID(), array.getJsonObject(0).getString("connectionID"));
+ Assert.assertEquals("connection2 default Order", csf2.getConnection().getID(), array.getJsonObject(1).getString("connectionID"));
+ Assert.assertEquals("connection3 session Order", csf3.getConnection().getID(), array.getJsonObject(2).getString("connectionID"));
+
+ //check order by session count desc
+ filterString = createJsonFilter("SESSION_COUNT", "GREATER_THAN", "1", "sessionCount", "desc");
+ connectionsAsJsonString = serverControl.listConnections(filterString, 1, 50);
+ connectionsAsJsonObject = JsonUtil.readJsonObject(connectionsAsJsonString);
+ array = (JsonArray) connectionsAsJsonObject.get("data");
+
+ Assert.assertEquals("number of connections returned from query", 3, array.size());
+ Assert.assertEquals("connection2 session Order", csf2.getConnection().getID(), array.getJsonObject(0).getString("connectionID"));
+ Assert.assertEquals("connection3 session Order", csf3.getConnection().getID(), array.getJsonObject(1).getString("connectionID"));
+ Assert.assertEquals("connection1 session Order", csf.getConnection().getID(), array.getJsonObject(2).getString("connectionID"));
+
+ //check order by creationTime desc
+ filterString = createJsonFilter("SESSION_COUNT", "GREATER_THAN", "1", "creationTime", "desc");
+ connectionsAsJsonString = serverControl.listConnections(filterString, 1, 50);
+ connectionsAsJsonObject = JsonUtil.readJsonObject(connectionsAsJsonString);
+ array = (JsonArray) connectionsAsJsonObject.get("data");
+
+ Assert.assertEquals("number of connections returned from query", 3, array.size());
+ Assert.assertEquals("connection3 creationTime Order", csf3.getConnection().getID(), array.getJsonObject(0).getString("connectionID"));
+ Assert.assertEquals("connection2 creationTime Order", csf2.getConnection().getID(), array.getJsonObject(1).getString("connectionID"));
+ Assert.assertEquals("connection1 creationTime Order", csf.getConnection().getID(), array.getJsonObject(2).getString("connectionID"));
+ } finally {
+ if (csf != null) {
+ csf.close();
+ }
+ if (csf2 != null) {
+ csf.close();
+ }
+ if (csf3 != null) {
+ csf.close();
+ }
}
}
@@ -2278,6 +2602,17 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
return jsonFilterObject.toString();
}
+ private String createJsonFilter(String fieldName, String operationName, String value,String sortColumn, String sortOrder) {
+ HashMap<String, Object> filterMap = new HashMap<>();
+ filterMap.put("field", fieldName);
+ filterMap.put("operation", operationName);
+ filterMap.put("value", value);
+ filterMap.put("sortColumn", sortColumn);
+ filterMap.put("sortOrder", sortOrder);
+ JsonObject jsonFilterObject = JsonUtil.toJsonObject(filterMap);
+ return jsonFilterObject.toString();
+ }
+
private void sendMessagesWithPredefinedSize(int numberOfMessages,
ClientSession session,
ClientProducer producer,
[4/4] activemq-artemis git commit: NO-JIRA fixed minor
regression(reverted JSON field names) and NullPointer in
ActiveMQServerControlImpl
Posted by mi...@apache.org.
NO-JIRA fixed minor regression(reverted JSON field names) and NullPointer in ActiveMQServerControlImpl
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/b39c5567
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/b39c5567
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/b39c5567
Branch: refs/heads/master
Commit: b39c5567849b2da44f56b2b300b54f5394451082
Parents: c1bc7a3
Author: Pat Fox <pa...@gmail.com>
Authored: Thu Dec 7 20:49:25 2017 +0100
Committer: Michael Pearce <mi...@me.com>
Committed: Tue Dec 12 13:17:02 2017 +0000
----------------------------------------------------------------------
.../src/main/webapp/plugin/js/connections.js | 12 +-
.../src/main/webapp/plugin/js/consumers.js | 28 ++--
.../src/main/webapp/plugin/js/producers.js | 8 +-
.../src/main/webapp/plugin/js/queues.js | 8 +-
.../src/main/webapp/plugin/js/sessions.js | 10 +-
.../impl/ActiveMQServerControlImpl.java | 8 +-
.../management/impl/view/ConnectionView.java | 12 +-
.../core/management/impl/view/ConsumerView.java | 18 +--
.../core/management/impl/view/ProducerView.java | 10 +-
.../core/management/impl/view/QueueView.java | 18 ++-
.../core/management/impl/view/SessionView.java | 9 +-
.../ActiveMQServerControlMultiThreadTest.java | 4 +-
.../management/ActiveMQServerControlTest.java | 148 +++++++++++++++++++
.../ActiveMQServerControlUsingCoreTest.java | 2 +-
14 files changed, 242 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/connections.js
----------------------------------------------------------------------
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/connections.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/connections.js
index 2329552..b6041c2 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/connections.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/connections.js
@@ -31,7 +31,7 @@ var ARTEMIS = (function(ARTEMIS) {
var method = 'listConnections(java.lang.String, int, int)';
var attributes = [
{
- field: 'iD',
+ field: 'connectionID',
displayName: 'ID',
width: '*'
},
@@ -46,7 +46,7 @@ var ARTEMIS = (function(ARTEMIS) {
width: '*'
},
{
- field: 'protocolName',
+ field: 'protocol',
displayName: 'Protocol',
width: '*'
},
@@ -63,7 +63,7 @@ var ARTEMIS = (function(ARTEMIS) {
width: '*'
},
{
- field: 'transportLocalAddress',
+ field: 'localAddress',
displayName: 'Local Address',
width: '*'
},
@@ -95,7 +95,7 @@ var ARTEMIS = (function(ARTEMIS) {
operation: "",
value: "",
sortOrder: "asc",
- sortBy: "iD"
+ sortBy: "connectionID"
}
};
@@ -142,8 +142,8 @@ var ARTEMIS = (function(ARTEMIS) {
currentPage: 1
};
$scope.sortOptions = {
- fields: ["iD"],
- columns: ["iD"],
+ fields: ["connectionID"],
+ columns: ["connectionID"],
directions: ["asc"]
};
var refreshed = false;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/consumers.js
----------------------------------------------------------------------
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/consumers.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/consumers.js
index ccc17a5..c0e27a2 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/consumers.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/consumers.js
@@ -31,31 +31,31 @@ var ARTEMIS = (function(ARTEMIS) {
var method = 'listConsumers(java.lang.String, int, int)';
var attributes = [
{
- field: 'sequentialID',
+ field: 'id',
displayName: 'ID',
width: '*'
},
{
- field: 'sessionName',
+ field: 'session',
displayName: 'Session',
width: '*',
- cellTemplate: '<div class="ngCellText"><a ng-click="selectSession(row)">{{row.entity.sessionName}}</a></div>'
+ cellTemplate: '<div class="ngCellText"><a ng-click="selectSession(row)">{{row.entity.session}}</a></div>'
},
{
- field: 'connectionClientID',
+ field: 'clientID',
displayName: 'Client ID',
width: '*'
},
{
- field: 'connectionProtocolName',
+ field: 'protocol',
displayName: 'Protocol',
width: '*'
},
{
- field: 'queueName',
+ field: 'queue',
displayName: 'Queue',
width: '*',
- cellTemplate: '<div class="ngCellText"><a ng-click="selectQueue(row)">{{row.entity.queueName}}</a></div>'
+ cellTemplate: '<div class="ngCellText"><a ng-click="selectQueue(row)">{{row.entity.queue}}</a></div>'
},
{
field: 'queueType',
@@ -63,18 +63,18 @@ var ARTEMIS = (function(ARTEMIS) {
width: '*'
},
{
- field: 'queueAddress',
+ field: 'address',
displayName: 'Address',
width: '*',
- cellTemplate: '<div class="ngCellText"><a ng-click="selectAddress(row)">{{row.entity.queueAddress}}</a></div>'
+ cellTemplate: '<div class="ngCellText"><a ng-click="selectAddress(row)">{{row.entity.address}}</a></div>'
},
{
- field: 'connectionRemoteAddress',
+ field: 'remoteAddress',
displayName: 'Remote Address',
width: '*'
},
{
- field: 'connectionLocalAddress',
+ field: 'localAddress',
displayName: 'Local Address',
width: '*'
},
@@ -105,7 +105,7 @@ var ARTEMIS = (function(ARTEMIS) {
operation: "",
value: "",
sortOrder: "asc",
- sortBy: "sequentialID"
+ sortBy: "id"
}
};
@@ -166,8 +166,8 @@ var ARTEMIS = (function(ARTEMIS) {
currentPage: 1
};
$scope.sortOptions = {
- fields: ["sequentialID"],
- columns: ["sequentialID"],
+ fields: ["id"],
+ columns: ["id"],
directions: ["asc"]
};
var refreshed = false;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/producers.js
----------------------------------------------------------------------
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/producers.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/producers.js
index 4f3a316..33f8e3e 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/producers.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/producers.js
@@ -31,7 +31,7 @@ var ARTEMIS = (function(ARTEMIS) {
var method = 'listProducers(java.lang.String, int, int)';
var attributes = [
{
- field: 'iD',
+ field: 'id',
displayName: 'ID',
width: '*'
},
@@ -99,7 +99,7 @@ var ARTEMIS = (function(ARTEMIS) {
operation: "",
value: "",
sortOrder: "asc",
- sortBy: "iD"
+ sortBy: "id"
}
};
@@ -136,8 +136,8 @@ var ARTEMIS = (function(ARTEMIS) {
currentPage: 1
};
$scope.sortOptions = {
- fields: ["iD"],
- columns: ["iD"],
+ fields: ["id"],
+ columns: ["id"],
directions: ["asc"]
};
var refreshed = false;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/queues.js
----------------------------------------------------------------------
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/queues.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/queues.js
index 7cd22ec..241e0d7 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/queues.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/queues.js
@@ -37,7 +37,7 @@ var ARTEMIS = (function(ARTEMIS) {
cellTemplate: '<div class="ngCellText"><a ng-click="navigateToQueueAtts(row)">attributes</a> <a ng-click="navigateToQueueOps(row)">operations</a></div>'
},
{
- field: 'iD',
+ field: 'id',
displayName: 'ID',
width: '*'
},
@@ -178,7 +178,7 @@ var ARTEMIS = (function(ARTEMIS) {
operation: "",
value: "",
sortOrder: "asc",
- sortBy: "iD"
+ sortBy: "id"
}
};
@@ -210,8 +210,8 @@ var ARTEMIS = (function(ARTEMIS) {
currentPage: 1
};
$scope.sortOptions = {
- fields: ["iD"],
- columns: ["iD"],
+ fields: ["id"],
+ columns: ["id"],
directions: ["asc"]
};
var refreshed = false;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/sessions.js
----------------------------------------------------------------------
diff --git a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/sessions.js b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/sessions.js
index 14b84bf..20aa752 100644
--- a/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/sessions.js
+++ b/artemis-hawtio/artemis-plugin/src/main/webapp/plugin/js/sessions.js
@@ -31,7 +31,7 @@ var ARTEMIS = (function(ARTEMIS) {
var method = 'listSessions(java.lang.String, int, int)';
var attributes = [
{
- field: 'name',
+ field: 'id',
displayName: 'ID',
width: '*'
},
@@ -42,7 +42,7 @@ var ARTEMIS = (function(ARTEMIS) {
cellTemplate: '<div class="ngCellText"><a ng-click="selectConnection(row)">{{row.entity.connectionID}}</a></div>'
},
{
- field: 'username',
+ field: 'user',
displayName: 'User',
width: '*'
},
@@ -86,7 +86,7 @@ var ARTEMIS = (function(ARTEMIS) {
operation: "",
value: "",
sortOrder: "asc",
- sortBy: "name"
+ sortBy: "id"
}
};
// Configure Parent/Child click through relationships
@@ -161,8 +161,8 @@ var ARTEMIS = (function(ARTEMIS) {
currentPage: 1
};
$scope.sortOptions = {
- fields: ["name"],
- columns: ["name"],
+ fields: ["id"],
+ columns: ["id"],
directions: ["asc"]
};
var refreshed = false;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/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 753d01b..6e12766 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
@@ -1737,8 +1737,12 @@ public class ActiveMQServerControlImpl extends AbstractControl implements Active
try {
final Set<SimpleString> addresses = server.getPostOffice().getAddresses();
List<AddressInfo> addressInfo = new ArrayList<>();
- for (SimpleString address:addresses) {
- addressInfo.add(server.getPostOffice().getAddressInfo(address));
+ for (SimpleString address : addresses) {
+ AddressInfo info = server.getPostOffice().getAddressInfo(address);
+ //ignore if no longer available
+ if (info != null) {
+ addressInfo.add(info);
+ }
}
AddressView view = new AddressView(server);
view.setCollection(addressInfo);
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
index ac7c4a4..94ee487 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
@@ -31,7 +31,7 @@ import org.apache.activemq.artemis.utils.StringUtil;
public class ConnectionView extends ActiveMQAbstractView<RemotingConnection> {
- private static final String defaultSortColumn = "iD";
+ private static final String defaultSortColumn = "connectionID";
private final ActiveMQServer server;
@@ -57,7 +57,15 @@ public class ConnectionView extends ActiveMQAbstractView<RemotingConnection> {
users.add(username);
}
- return JsonLoader.createObjectBuilder().add("iD", toString(connection.getID())).add("remoteAddress", toString(connection.getRemoteAddress())).add("users", StringUtil.joinStringList(users, ",")).add("creationTime", new Date(connection.getCreationTime()).toString()).add("implementation", toString(toString(connection.getClass().getSimpleName()))).add("protocolName", toString(connection.getProtocolName())).add("clientID", toString(connection.getClientID())).add("transportLocalAddress", toString(connection.getTransportLocalAddress())).add("sessionCount", server.getSessions(connection.getID().toString()).size());
+ return JsonLoader.createObjectBuilder().add("connectionID", toString(connection.getID()))
+ .add("remoteAddress", toString(connection.getRemoteAddress()))
+ .add("users", StringUtil.joinStringList(users, ","))
+ .add("creationTime", new Date(connection.getCreationTime()).toString())
+ .add("implementation", toString(toString(connection.getClass().getSimpleName())))
+ .add("protocol", toString(connection.getProtocolName()))
+ .add("clientID", toString(connection.getClientID()))
+ .add("localAddress", toString(connection.getTransportLocalAddress()))
+ .add("sessionCount", server.getSessions(connection.getID().toString()).size());
}
@Override
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
index 386425a..4b1feb3 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
@@ -27,7 +27,7 @@ import org.apache.activemq.artemis.utils.JsonLoader;
public class ConsumerView extends ActiveMQAbstractView<ServerConsumer> {
- private static final String defaultSortColumn = "sequentialID";
+ private static final String defaultSortColumn = "id";
private final ActiveMQServer server;
@@ -51,16 +51,16 @@ public class ConsumerView extends ActiveMQAbstractView<ServerConsumer> {
return null;
}
- JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("sequentialID", toString(consumer.getSequentialID()))
- .add("sessionName", toString(consumer.getSessionName()))
- .add("connectionClientID", toString(consumer.getConnectionClientID()))
+ JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("id", toString(consumer.getSequentialID()))
+ .add("session", toString(consumer.getSessionName()))
+ .add("clientID", toString(consumer.getConnectionClientID()))
.add("user", toString(session.getUsername()))
- .add("connectionProtocolName", toString(consumer.getConnectionProtocolName()))
- .add("queueName", toString(consumer.getQueueName()))
+ .add("protocol", toString(consumer.getConnectionProtocolName()))
+ .add("queue", toString(consumer.getQueueName()))
.add("queueType", toString(consumer.getQueueType()).toLowerCase())
- .add("queueAddress", toString(consumer.getQueueAddress().toString()))
- .add("connectionLocalAddress", toString(consumer.getConnectionLocalAddress()))
- .add("connectionRemoteAddress", toString(consumer.getConnectionRemoteAddress()))
+ .add("address", toString(consumer.getQueueAddress().toString()))
+ .add("localAddress", toString(consumer.getConnectionLocalAddress()))
+ .add("remoteAddress", toString(consumer.getConnectionRemoteAddress()))
.add("creationTime", new Date(consumer.getCreationTime()).toString());
return obj;
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
index 9787229..e14ab6d 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
@@ -44,7 +44,15 @@ public class ProducerView extends ActiveMQAbstractView<ServerProducer> {
@Override
public JsonObjectBuilder toJson(ServerProducer producer) {
ServerSession session = server.getSessionByID(producer.getSessionID());
- JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("iD", toString(producer.getID())).add("session", toString(session.getName())).add("clientID", toString(session.getRemotingConnection().getClientID())).add("user", toString(session.getUsername())).add("protocol", toString(session.getRemotingConnection().getProtocolName())).add("address", toString(producer.getAddress() != null ? producer.getAddress() : session.getDefaultAddress())).add("localAddress", toString(session.getRemotingConnection().getTransportConnection().getLocalAddress())).add("remoteAddress", toString(session.getRemotingConnection().getTransportConnection().getRemoteAddress())).add("creationTime", toString(producer.getCreationTime()));
+ JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("id", toString(producer.getID()))
+ .add("session", toString(session.getName()))
+ .add("clientID", toString(session.getRemotingConnection().getClientID()))
+ .add("user", toString(session.getUsername()))
+ .add("protocol", toString(session.getRemotingConnection().getProtocolName()))
+ .add("address", toString(producer.getAddress() != null ? producer.getAddress() : session.getDefaultAddress()))
+ .add("localAddress", toString(session.getRemotingConnection().getTransportConnection().getLocalAddress()))
+ .add("remoteAddress", toString(session.getRemotingConnection().getTransportConnection().getRemoteAddress()))
+ .add("creationTime", toString(producer.getCreationTime()));
return obj;
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
index cb80cc9..539ded9 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
@@ -45,7 +45,23 @@ public class QueueView extends ActiveMQAbstractView<QueueControl> {
@Override
public JsonObjectBuilder toJson(QueueControl queue) {
Queue q = server.locateQueue(new SimpleString(queue.getName()));
- JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("iD", toString(queue.getID())).add("name", toString(queue.getName())).add("address", toString(queue.getAddress())).add("filter", toString(queue.getFilter())).add("rate", toString(q.getRate())).add("durable", toString(queue.isDurable())).add("paused", toString(q.isPaused())).add("temporary", toString(queue.isTemporary())).add("purgeOnNoConsumers", toString(queue.isPurgeOnNoConsumers())).add("consumerCount", toString(queue.getConsumerCount())).add("maxConsumers", toString(queue.getMaxConsumers())).add("autoCreated", toString(q.isAutoCreated())).add("user", toString(q.getUser())).add("routingType", toString(queue.getRoutingType())).add("messagesAdded", toString(queue.getMessagesAdded())).add("messageCount", toString(queue.getMessageCount())).add("messagesAcked", toString(queue.getMessagesAcknowledged())).add("deliveringCount", toString(queue.getDeliveringCount())).add("messagesKilled", toString(queue.getMessagesKilled()
)).add("deliverDeliver", toString(q.isDirectDeliver()));
+ JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("id", toString(queue.getID()))
+ .add("name", toString(queue.getName())).add("address", toString(queue.getAddress()))
+ .add("filter", toString(queue.getFilter())).add("rate", toString(q.getRate()))
+ .add("durable", toString(queue.isDurable())).add("paused", toString(q.isPaused()))
+ .add("temporary", toString(queue.isTemporary()))
+ .add("purgeOnNoConsumers", toString(queue.isPurgeOnNoConsumers()))
+ .add("consumerCount", toString(queue.getConsumerCount()))
+ .add("maxConsumers", toString(queue.getMaxConsumers()))
+ .add("autoCreated", toString(q.isAutoCreated()))
+ .add("user", toString(q.getUser()))
+ .add("routingType", toString(queue.getRoutingType()))
+ .add("messagesAdded", toString(queue.getMessagesAdded()))
+ .add("messageCount", toString(queue.getMessageCount()))
+ .add("messagesAcked", toString(queue.getMessagesAcknowledged()))
+ .add("deliveringCount", toString(queue.getDeliveringCount()))
+ .add("messagesKilled", toString(queue.getMessagesKilled()))
+ .add("deliverDeliver", toString(q.isDirectDeliver()));
return obj;
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
index c294993..6a93864 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
@@ -25,7 +25,7 @@ import org.apache.activemq.artemis.utils.JsonLoader;
public class SessionView extends ActiveMQAbstractView<ServerSession> {
- private static final String defaultSortColumn = "name";
+ private static final String defaultSortColumn = "id";
public SessionView() {
super();
@@ -39,7 +39,12 @@ public class SessionView extends ActiveMQAbstractView<ServerSession> {
@Override
public JsonObjectBuilder toJson(ServerSession session) {
- JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("name", toString(session.getName())).add("username", toString(session.getUsername())).add("creationTime", new Date(session.getCreationTime()).toString()).add("consumerCount", session.getConsumerCount()).add("producerCount", session.getProducerCount()).add("connectionID", session.getConnectionID().toString());
+ JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("id", toString(session.getName()))
+ .add("user", toString(session.getUsername()))
+ .add("creationTime", new Date(session.getCreationTime()).toString())
+ .add("consumerCount", session.getConsumerCount())
+ .add("producerCount", session.getProducerCount())
+ .add("connectionID", session.getConnectionID().toString());
return obj;
}
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ActiveMQServerControlMultiThreadTest.java
----------------------------------------------------------------------
diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ActiveMQServerControlMultiThreadTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ActiveMQServerControlMultiThreadTest.java
index 6f4b886..609103a 100644
--- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ActiveMQServerControlMultiThreadTest.java
+++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/ActiveMQServerControlMultiThreadTest.java
@@ -64,8 +64,8 @@ public class ActiveMQServerControlMultiThreadTest extends ManagementTestBase {
@Test
@BMRules(rules = {@BMRule(name = "Delay listAddress() by 2 secs ",
- targetClass = "org.apache.activemq.artemis.core.management.impl.view.AddressView ",
- targetMethod = "<init>(org.apache.activemq.artemis.core.server.ActiveMQServer)",
+ targetClass = "org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl",
+ targetMethod = "getAddressInfo(org.apache.activemq.artemis.api.core.SimpleString)",
targetLocation = "ENTRY",
action = "org.apache.activemq.artemis.tests.extras.byteman.ActiveMQServerControlMultiThreadTest.delay(2)")})
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/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 8c2b6c2..55d7254 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
@@ -1518,6 +1518,27 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
array = (JsonArray) queuesAsJsonObject.get("data");
Assert.assertEquals("number of queues returned from query", 1, array.size());
+ //check all field names are available
+ Assert.assertNotEquals("name", "", array.getJsonObject(0).getString("name"));
+ Assert.assertNotEquals("id", "", array.getJsonObject(0).getString("id"));
+ Assert.assertNotEquals("address", "", array.getJsonObject(0).getString("address"));
+ Assert.assertEquals("filter", "", array.getJsonObject(0).getString("filter"));
+ Assert.assertNotEquals("rate", "", array.getJsonObject(0).getString("rate"));
+ Assert.assertEquals("durable", "false", array.getJsonObject(0).getString("durable"));
+ Assert.assertEquals("paused", "false", array.getJsonObject(0).getString("paused"));
+ Assert.assertNotEquals("temporary", "", array.getJsonObject(0).getString("temporary"));
+ Assert.assertEquals("purgeOnNoConsumers", "false", array.getJsonObject(0).getString("purgeOnNoConsumers"));
+ Assert.assertNotEquals("consumerCount", "", array.getJsonObject(0).getString("consumerCount"));
+ Assert.assertEquals("maxConsumers", "-1", array.getJsonObject(0).getString("maxConsumers"));
+ Assert.assertEquals("autoCreated", "false", array.getJsonObject(0).getString("autoCreated"));
+ Assert.assertEquals("user", "", array.getJsonObject(0).getString("user"));
+ Assert.assertNotEquals("routingType", "", array.getJsonObject(0).getString("routingType"));
+ Assert.assertEquals("messagesAdded", "0", array.getJsonObject(0).getString("messagesAdded"));
+ Assert.assertEquals("messageCount", "0", array.getJsonObject(0).getString("messageCount"));
+ Assert.assertEquals("messagesAcked", "0", array.getJsonObject(0).getString("messagesAcked"));
+ Assert.assertEquals("deliveringCount", "0", array.getJsonObject(0).getString("deliveringCount"));
+ Assert.assertEquals("messagesKilled", "0", array.getJsonObject(0).getString("messagesKilled"));
+ Assert.assertEquals("deliverDeliver", "true", array.getJsonObject(0).getString("deliverDeliver"));
}
@@ -1793,7 +1814,11 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
array = (JsonArray) addressesAsJsonObject.get("data");
Assert.assertEquals("number of addresses returned from query", 1, array.size());
+ //check all field names
Assert.assertEquals("address name check", addressName1.toString(), array.getJsonObject(0).getString("name"));
+ Assert.assertNotEquals("id", "", array.getJsonObject(0).getString("id"));
+ Assert.assertTrue("routingTypes", array.getJsonObject(0).getString("routingTypes").contains(RoutingType.ANYCAST.name()));
+ Assert.assertEquals("queueCount", "1", array.getJsonObject(0).getString("queueCount"));
//test with empty filter - all addresses should be returned
filterString = createJsonFilter("", "", "");
@@ -1909,9 +1934,132 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
Assert.assertEquals("address name in consumer", addressName2.toString(), jsonConsumer.getString("address"));
Assert.assertEquals("consumer protocol ", "CORE", jsonConsumer.getString("protocol"));
Assert.assertEquals("queue type", "anycast", jsonConsumer.getString("queueType"));
+ Assert.assertNotEquals("id", "", jsonConsumer.getString("id"));
+ Assert.assertNotEquals("session", "", jsonConsumer.getString("session"));
+ Assert.assertEquals("clientID", "", jsonConsumer.getString("clientID"));
+ Assert.assertEquals("user", "", jsonConsumer.getString("user"));
+ Assert.assertNotEquals("localAddress", "", jsonConsumer.getString("localAddress"));
+ Assert.assertNotEquals("remoteAddress", "", jsonConsumer.getString("remoteAddress"));
+ Assert.assertNotEquals("creationTime", "", jsonConsumer.getString("creationTime"));
+ }
+
+ }
+
+ @Test
+ public void testListSessions() throws Exception {
+ SimpleString queueName1 = new SimpleString("my_queue_one");
+ SimpleString addressName1 = new SimpleString("my_address_one");
+
+ ActiveMQServerControl serverControl = createManagementControl();
+
+ server.addAddressInfo(new AddressInfo(addressName1, RoutingType.ANYCAST));
+ server.createQueue(addressName1, RoutingType.ANYCAST, queueName1, null, false, false);
+ // create some consumers
+ try (ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory csf = createSessionFactory(locator);) {
+
+ ClientSession session1 = csf.createSession();
+ ClientSession session2 = csf.createSession();
+
+ ClientConsumer consumer1_q1 = session1.createConsumer(queueName1);
+ ClientConsumer consumer2_q1 = session2.createConsumer(queueName1);
+
+ //bring back all sessions
+ String filterString = createJsonFilter("", "", "");
+ String sessionsAsJsonString = serverControl.listSessions(filterString, 1, 50);
+ JsonObject sessionsAsJsonObject = JsonUtil.readJsonObject(sessionsAsJsonString);
+ JsonArray array = (JsonArray) sessionsAsJsonObject.get("data");
+
+ Assert.assertTrue("number of sessions returned from query", 2 <= array.size());
+ JsonObject jsonSession = array.getJsonObject(0);
+
+ //check all fields
+ Assert.assertNotEquals("id", "", jsonSession.getString("id"));
+ Assert.assertEquals("user", "", jsonSession.getString("user"));
+ Assert.assertNotEquals("creationTime", "", jsonSession.getString("creationTime"));
+ Assert.assertEquals("consumerCount", 1, jsonSession.getInt("consumerCount"));
+ Assert.assertTrue("producerCount", 0 <= jsonSession.getInt("producerCount"));
+ Assert.assertNotEquals("connectionID", "", jsonSession.getString("connectionID"));
}
+ }
+
+ @Test
+ public void testListConnections() throws Exception {
+ SimpleString queueName1 = new SimpleString("my_queue_one");
+ SimpleString addressName1 = new SimpleString("my_address_one");
+
+ ActiveMQServerControl serverControl = createManagementControl();
+ server.addAddressInfo(new AddressInfo(addressName1, RoutingType.ANYCAST));
+ server.createQueue(addressName1, RoutingType.ANYCAST, queueName1, null, false, false);
+
+ // create some consumers
+ try (ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory csf = createSessionFactory(locator);) {
+
+ ClientSession session1 = csf.createSession();
+
+ //bring back all connection
+ String filterString = createJsonFilter("", "", "");
+ String connectionsAsJsonString = serverControl.listConnections(filterString, 1, 50);
+ JsonObject connectionsAsJsonObject = JsonUtil.readJsonObject(connectionsAsJsonString);
+ JsonArray array = (JsonArray) connectionsAsJsonObject.get("data");
+
+ Assert.assertTrue("number of connections returned from query", 1 <= array.size());
+ JsonObject jsonConnection = array.getJsonObject(0);
+
+ //check all fields
+ Assert.assertNotEquals("connectionID", "", jsonConnection.getString("connectionID"));
+ Assert.assertNotEquals("remoteAddress", "", jsonConnection.getString("remoteAddress"));
+ Assert.assertEquals("users", "", jsonConnection.getString("users"));
+ Assert.assertNotEquals("creationTime", "", jsonConnection.getString("creationTime"));
+ Assert.assertNotEquals("implementation", "", jsonConnection.getString("implementation"));
+ Assert.assertNotEquals("protocol", "", jsonConnection.getString("protocol"));
+ Assert.assertEquals("clientID", "", jsonConnection.getString("clientID"));
+ Assert.assertNotEquals("localAddress", "", jsonConnection.getString("localAddress"));
+ Assert.assertEquals("sessionCount", 1, jsonConnection.getInt("sessionCount"));
+ }
+ }
+
+ @Test
+ public void testListProducers() throws Exception {
+ SimpleString queueName1 = new SimpleString("my_queue_one");
+ SimpleString addressName1 = new SimpleString("my_address_one");
+
+ ActiveMQServerControl serverControl = createManagementControl();
+
+ server.addAddressInfo(new AddressInfo(addressName1, RoutingType.ANYCAST));
+ server.createQueue(addressName1, RoutingType.ANYCAST, queueName1, null, false, false);
+
+ // create some consumers
+ try (ServerLocator locator = createInVMNonHALocator(); ClientSessionFactory csf = createSessionFactory(locator);) {
+
+ ClientSession session1 = csf.createSession();
+ ClientSession session2 = csf.createSession();
+
+ ClientProducer producer1 = session1.createProducer(addressName1);
+ ClientProducer producer2 = session1.createProducer(addressName1);
+
+ //bring back all producers
+ String filterString = createJsonFilter("", "", "");
+ String producersAsJsonString = serverControl.listProducers(filterString, 1, 50);
+ JsonObject producersAsJsonObject = JsonUtil.readJsonObject(producersAsJsonString);
+ JsonArray array = (JsonArray) producersAsJsonObject.get("data");
+
+ Assert.assertTrue("number of producers returned from query", 2 <= array.size());
+ JsonObject jsonSession = array.getJsonObject(0);
+
+ //check all fields
+ Assert.assertNotEquals("id", "", jsonSession.getString("id"));
+ Assert.assertNotEquals("session", "", jsonSession.getString("session"));
+ Assert.assertEquals("clientID", "", jsonSession.getString("clientID"));
+ Assert.assertEquals("user", "", jsonSession.getString("user"));
+ Assert.assertNotEquals("protocol", "", jsonSession.getString("protocol"));
+ Assert.assertEquals("address", "", jsonSession.getString("address"));
+ Assert.assertNotEquals("localAddress", "", jsonSession.getString("localAddress"));
+ Assert.assertNotEquals("remoteAddress", "", jsonSession.getString("remoteAddress"));
+ Assert.assertNotEquals("creationTime", "", jsonSession.getString("creationTime"));
+
+ }
}
@Test
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b39c5567/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 4a9f861..9351fee 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
@@ -994,7 +994,7 @@ public class ActiveMQServerControlUsingCoreTest extends ActiveMQServerControlTes
@Override
public String listConnections(String filter, int page, int pageSize) throws Exception {
- return (String) proxy.invokeOperation("listAddresses", filter, page, pageSize);
+ return (String) proxy.invokeOperation("listConnections", filter, page, pageSize);
}
@Override
[2/4] activemq-artemis git commit: NO-JIRA fix fieldname regression
Posted by mi...@apache.org.
NO-JIRA fix fieldname regression
Fix field name regression, but ensure predicate and sorting still works.
Remove reflection introduced by new sorting, and rely on field mapping.
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/f08da813
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/f08da813
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/f08da813
Branch: refs/heads/master
Commit: f08da813a18d5152fd7e4e98037c127e77f15ca4
Parents: b39c556
Author: Michael André Pearce <mi...@me.com>
Authored: Mon Dec 11 06:47:08 2017 +0000
Committer: Michael Pearce <mi...@me.com>
Committed: Tue Dec 12 13:17:02 2017 +0000
----------------------------------------------------------------------
.../impl/view/ActiveMQAbstractView.java | 39 +++------------
.../core/management/impl/view/AddressView.java | 30 ++++++++++++
.../management/impl/view/ConnectionView.java | 35 +++++++++++++-
.../core/management/impl/view/ConsumerView.java | 37 +++++++++++++-
.../core/management/impl/view/ProducerView.java | 38 +++++++++++++++
.../core/management/impl/view/QueueView.java | 51 ++++++++++++++++++++
.../core/management/impl/view/SessionView.java | 20 ++++++++
7 files changed, 217 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/f08da813/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java
index f4e44f7..29f5fcf 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ActiveMQAbstractView.java
@@ -53,8 +53,6 @@ public abstract class ActiveMQAbstractView<T> {
protected String options;
- private Method getter;
-
public ActiveMQAbstractView() {
this.sortColumn = getDefaultOrderColumn();
this.sortOrder = "asc";
@@ -98,29 +96,18 @@ public abstract class ActiveMQAbstractView<T> {
return predicate;
}
- private Method getGetter() {
- if (getter == null) {
- getter = findGetterMethod(getClassT(), sortColumn);
- }
- return getter;
- }
-
public Ordering<T> getOrdering() {
return new Ordering<T>() {
-
@Override
public int compare(T left, T right) {
- Method getter = getGetter();
try {
- if (getter != null) {
- Object leftValue = getter.invoke(left);
- Object rightValue = getter.invoke(right);
- if (leftValue instanceof Comparable && rightValue instanceof Comparable) {
- if (sortOrder.equals("desc")) {
- return ((Comparable) rightValue).compareTo(leftValue);
- } else {
- return ((Comparable) leftValue).compareTo(rightValue);
- }
+ Object leftValue = getField(left, sortColumn);;
+ Object rightValue = getField(right, sortColumn);;
+ if (leftValue instanceof Comparable && rightValue instanceof Comparable) {
+ if (sortOrder.equals("desc")) {
+ return ((Comparable) rightValue).compareTo(leftValue);
+ } else {
+ return ((Comparable) leftValue).compareTo(rightValue);
}
}
return 0;
@@ -132,17 +119,7 @@ public abstract class ActiveMQAbstractView<T> {
};
}
- public static Method findGetterMethod(Class clazz, String sortColumn) {
- String name = "get" + Character.toUpperCase(sortColumn.charAt(0)) + sortColumn.substring(1);
- Method[] methods = clazz.getMethods();
- for (Method method : methods) {
- Class<?>[] params = method.getParameterTypes();
- if (method.getName().equals(name) && params.length == 0) {
- return method;
- }
- }
- return null;
- }
+ abstract Object getField(T t, String fieldName);
public void setOptions(String options) {
JsonObject json = JsonUtil.readJsonObject(options);
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/f08da813/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java
index ea24e78..58bf52d 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/AddressView.java
@@ -17,9 +17,16 @@
package org.apache.activemq.artemis.core.management.impl.view;
import javax.json.JsonObjectBuilder;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
import org.apache.activemq.artemis.core.management.impl.view.predicate.AddressFilterPredicate;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
+import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.core.server.impl.AddressInfo;
+import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.utils.JsonLoader;
public class AddressView extends ActiveMQAbstractView<AddressInfo> {
@@ -56,6 +63,29 @@ public class AddressView extends ActiveMQAbstractView<AddressInfo> {
return obj;
}
+ public Object getField(AddressInfo address, String fieldName) {
+ if (address == null) {
+ return null;
+ }
+
+ switch (fieldName) {
+ case "id":
+ return address.getId();
+ case "name":
+ return address.getName();
+ case "routingTypes":
+ return address.getRoutingTypes();
+ case "queueCount":
+ try {
+ return server.bindingQuery(address.getName()).getQueueNames().size();
+ } catch (Exception e) {
+ return 0;
+ }
+ default:
+ throw new IllegalArgumentException("Unsupported field, " + fieldName);
+ }
+ }
+
@Override
public String getDefaultOrderColumn() {
return defaultSortColumn;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/f08da813/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
index 94ee487..1baf039 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConnectionView.java
@@ -24,6 +24,7 @@ import java.util.Set;
import org.apache.activemq.artemis.core.management.impl.view.predicate.ConnectionFilterPredicate;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
+import org.apache.activemq.artemis.core.server.ServerConsumer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.utils.JsonLoader;
@@ -61,13 +62,45 @@ public class ConnectionView extends ActiveMQAbstractView<RemotingConnection> {
.add("remoteAddress", toString(connection.getRemoteAddress()))
.add("users", StringUtil.joinStringList(users, ","))
.add("creationTime", new Date(connection.getCreationTime()).toString())
- .add("implementation", toString(toString(connection.getClass().getSimpleName())))
+ .add("implementation", toString(connection.getClass().getSimpleName()))
.add("protocol", toString(connection.getProtocolName()))
.add("clientID", toString(connection.getClientID()))
.add("localAddress", toString(connection.getTransportLocalAddress()))
.add("sessionCount", server.getSessions(connection.getID().toString()).size());
}
+ public Object getField(RemotingConnection connection, String fieldName) {
+ List<ServerSession> sessions = server.getSessions(connection.getID().toString());
+
+ switch (fieldName) {
+ case "connectionID":
+ return connection.getID();
+ case "remoteAddress":
+ return connection.getRemoteAddress();
+ case "users":
+ Set<String> users = new HashSet<>();
+ for (ServerSession session : sessions) {
+ String username = session.getUsername() == null ? "" : session.getUsername();
+ users.add(username);
+ }
+ return users;
+ case "creationTime":
+ return new Date(connection.getCreationTime());
+ case "implementation":
+ return connection.getClass().getSimpleName();
+ case "protocol":
+ return connection.getProtocolName();
+ case "clientID":
+ return connection.getClientID();
+ case "localAddress":
+ return connection.getTransportLocalAddress();
+ case "sessionCount":
+ return sessions.size();
+ default:
+ throw new IllegalArgumentException("Unsupported field, " + fieldName);
+ }
+ }
+
@Override
public String getDefaultOrderColumn() {
return defaultSortColumn;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/f08da813/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
index 4b1feb3..1eac72f 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ConsumerView.java
@@ -22,6 +22,7 @@ import java.util.Date;
import org.apache.activemq.artemis.core.management.impl.view.predicate.ConsumerFilterPredicate;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.ServerConsumer;
+import org.apache.activemq.artemis.core.server.ServerProducer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.utils.JsonLoader;
@@ -58,13 +59,47 @@ public class ConsumerView extends ActiveMQAbstractView<ServerConsumer> {
.add("protocol", toString(consumer.getConnectionProtocolName()))
.add("queue", toString(consumer.getQueueName()))
.add("queueType", toString(consumer.getQueueType()).toLowerCase())
- .add("address", toString(consumer.getQueueAddress().toString()))
+ .add("address", toString(consumer.getQueueAddress()))
.add("localAddress", toString(consumer.getConnectionLocalAddress()))
.add("remoteAddress", toString(consumer.getConnectionRemoteAddress()))
.add("creationTime", new Date(consumer.getCreationTime()).toString());
return obj;
}
+ public Object getField(ServerConsumer consumer, String fieldName) {
+ ServerSession session = server.getSessionByID(consumer.getSessionID());
+
+ //if session is not available then consumer is not in valid state - ignore
+ if (session == null) {
+ return null;
+ }
+
+ switch (fieldName) {
+ case "id":
+ return consumer.getSequentialID();
+ case "session":
+ return consumer.getSessionName();
+ case "user":
+ return session.getUsername();
+ case "clientID":
+ return consumer.getConnectionClientID();
+ case "protocol":
+ return consumer.getConnectionProtocolName();
+ case "queue":
+ return consumer.getQueueName();
+ case "queueType":
+ return consumer.getQueueType();
+ case "localAddress":
+ return consumer.getConnectionLocalAddress();
+ case "remoteAddress":
+ return consumer.getConnectionRemoteAddress();
+ case "creationTime":
+ return new Date(consumer.getCreationTime());
+ default:
+ throw new IllegalArgumentException("Unsupported field, " + fieldName);
+ }
+ }
+
@Override
public String getDefaultOrderColumn() {
return defaultSortColumn;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/f08da813/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
index e14ab6d..af19d74 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/ProducerView.java
@@ -44,6 +44,12 @@ public class ProducerView extends ActiveMQAbstractView<ServerProducer> {
@Override
public JsonObjectBuilder toJson(ServerProducer producer) {
ServerSession session = server.getSessionByID(producer.getSessionID());
+
+ //if session is not available then consumer is not in valid state - ignore
+ if (session == null) {
+ return null;
+ }
+
JsonObjectBuilder obj = JsonLoader.createObjectBuilder().add("id", toString(producer.getID()))
.add("session", toString(session.getName()))
.add("clientID", toString(session.getRemotingConnection().getClientID()))
@@ -56,6 +62,38 @@ public class ProducerView extends ActiveMQAbstractView<ServerProducer> {
return obj;
}
+ public Object getField(ServerProducer producer, String fieldName) {
+ ServerSession session = server.getSessionByID(producer.getSessionID());
+
+ //if session is not available then consumer is not in valid state - ignore
+ if (session == null) {
+ return null;
+ }
+
+ switch (fieldName) {
+ case "id":
+ return producer.getID();
+ case "session":
+ return session.getName();
+ case "user":
+ return session.getUsername();
+ case "clientID":
+ return session.getRemotingConnection().getClientID();
+ case "protocol":
+ return session.getRemotingConnection().getProtocolName();
+ case "address":
+ return producer.getAddress() != null ? producer.getAddress() : session.getDefaultAddress();
+ case "localAddress":
+ return session.getRemotingConnection().getTransportConnection().getLocalAddress();
+ case "remoteAddress":
+ return session.getRemotingConnection().getTransportConnection().getRemoteAddress();
+ case "creationTime":
+ return producer.getCreationTime();
+ default:
+ throw new IllegalArgumentException("Unsupported field, " + fieldName);
+ }
+ }
+
@Override
public String getDefaultOrderColumn() {
return defaultSortColumn;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/f08da813/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
index 539ded9..1f8ac0a 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/QueueView.java
@@ -18,11 +18,14 @@ package org.apache.activemq.artemis.core.management.impl.view;
import javax.json.JsonObjectBuilder;
+import java.util.Date;
+
import org.apache.activemq.artemis.api.core.SimpleString;
import org.apache.activemq.artemis.api.core.management.QueueControl;
import org.apache.activemq.artemis.core.management.impl.view.predicate.QueueFilterPredicate;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.Queue;
+import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.utils.JsonLoader;
public class QueueView extends ActiveMQAbstractView<QueueControl> {
@@ -65,6 +68,54 @@ public class QueueView extends ActiveMQAbstractView<QueueControl> {
return obj;
}
+ public Object getField(QueueControl queue, String fieldName) {
+ Queue q = server.locateQueue(new SimpleString(queue.getName()));
+ switch (fieldName) {
+ case "id":
+ return queue.getID();
+ case "name":
+ return queue.getName();
+ case "address":
+ return queue.getAddress();
+ case "filter":
+ return queue.getFilter();
+ case "rate":
+ return q.getRate();
+ case "durable":
+ return queue.isDurable();
+ case "paused":
+ return q.isPaused();
+ case "temporary":
+ return queue.isTemporary();
+ case "purgeOnNoConsumers":
+ return queue.isPurgeOnNoConsumers();
+ case "consumerCount":
+ return queue.getConsumerCount();
+ case "maxConsumers":
+ return queue.getMaxConsumers();
+ case "autoCreated":
+ return q.isAutoCreated();
+ case "user":
+ return q.getUser();
+ case "routingType":
+ return queue.getRoutingType();
+ case "messagesAdded":
+ return queue.getMessagesAdded();
+ case "messageCount":
+ return queue.getMessageCount();
+ case "messagesAcked":
+ return queue.getMessagesAcknowledged();
+ case "deliveringCount":
+ return queue.getDeliveringCount();
+ case "messagesKilled":
+ return queue.getMessagesKilled();
+ case "deliverDeliver":
+ return q.isDirectDeliver();
+ default:
+ throw new IllegalArgumentException("Unsupported field, " + fieldName);
+ }
+ }
+
@Override
public String getDefaultOrderColumn() {
return defaultSortColumn;
http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/f08da813/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
index 6a93864..35fc8b8 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/management/impl/view/SessionView.java
@@ -21,6 +21,7 @@ import java.util.Date;
import org.apache.activemq.artemis.core.management.impl.view.predicate.SessionFilterPredicate;
import org.apache.activemq.artemis.core.server.ServerSession;
+import org.apache.activemq.artemis.core.server.impl.AddressInfo;
import org.apache.activemq.artemis.utils.JsonLoader;
public class SessionView extends ActiveMQAbstractView<ServerSession> {
@@ -48,6 +49,25 @@ public class SessionView extends ActiveMQAbstractView<ServerSession> {
return obj;
}
+ public Object getField(ServerSession session, String fieldName) {
+ switch (fieldName) {
+ case "id":
+ return session.getName();
+ case "user":
+ return session.getUsername();
+ case "creationTime":
+ return new Date(session.getCreationTime());
+ case "consumerCount":
+ return session.getConsumerCount();
+ case "producerCount":
+ return session.getProducerCount();
+ case "connectionID":
+ return session.getConnectionID();
+ default:
+ throw new IllegalArgumentException("Unsupported field, " + fieldName);
+ }
+ }
+
@Override
public String getDefaultOrderColumn() {
return defaultSortColumn;