You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2012/11/30 13:21:21 UTC

svn commit: r1415594 - in /activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx: StatusView.java StatusViewMBean.java

Author: jstrachan
Date: Fri Nov 30 12:21:21 2012
New Revision: 1415594

URL: http://svn.apache.org/viewvc?rev=1415594&view=rev
Log:
added a more jolokia friendly statusList() method which returns nicer JSON for the status query

Modified:
    activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusView.java
    activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusViewMBean.java

Modified: activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusView.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusView.java?rev=1415594&r1=1415593&r2=1415594&view=diff
==============================================================================
--- activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusView.java (original)
+++ activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusView.java Fri Nov 30 12:21:21 2012
@@ -22,6 +22,8 @@ import javax.management.openmbean.Compos
 import javax.management.openmbean.TabularData;
 import javax.management.openmbean.TabularDataSupport;
 import javax.management.openmbean.TabularType;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 public class StatusView implements StatusViewMBean {
@@ -39,14 +41,24 @@ public class StatusView implements Statu
         TabularType tt = new TabularType("Status", "Status", ct, new String[]{"id", "resource"});
         TabularDataSupport rc = new TabularDataSupport(tt);
 
+        List<StatusEvent> list = statusList();
+        for (StatusEvent statusEvent : list) {
+            rc.put(new CompositeDataSupport(ct, factory.getFields(statusEvent)));
+        }
+        return rc;
+    }
+
+    @Override
+    public List<StatusEvent> statusList() throws Exception {
+        List<StatusEvent> answer = new ArrayList<StatusEvent>();
         Map<ObjectName, DestinationView> queueViews = broker.getQueueViews();
         for (Map.Entry<ObjectName, DestinationView> entry : queueViews.entrySet()) {
             DestinationView queue = entry.getValue();
             if (queue.getConsumerCount() == 0 && queue.getProducerCount() > 0) {
-                rc.put(new CompositeDataSupport(ct, factory.getFields(new StatusEvent("AMQ-NoConsumer", entry.getKey().toString()))));
+                answer.add(new StatusEvent("AMQ-NoConsumer", entry.getKey().toString()));
             }
         }
-        return rc;
+        return answer;
     }
 
 }

Modified: activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusViewMBean.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusViewMBean.java?rev=1415594&r1=1415593&r2=1415594&view=diff
==============================================================================
--- activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusViewMBean.java (original)
+++ activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/StatusViewMBean.java Fri Nov 30 12:21:21 2012
@@ -17,8 +17,21 @@
 package org.apache.activemq.broker.jmx;
 
 import javax.management.openmbean.TabularData;
+import java.util.List;
 
+/**
+ * Returns the status events of the broker to indicate any warnings.
+ */
 public interface StatusViewMBean {
 
     public TabularData status() throws Exception;
+
+    /**
+     * Warning this method can only be invoked if you have the correct version
+     * of {@link StatusEvent} on your classpath or you use something
+     * like <a href="http://jolokia.org/">jolokia</a> to access JMX.
+     *
+     * If in doubt, please use the {@link #status()} method instead!
+     */
+    List<StatusEvent> statusList() throws Exception;
 }