mirror of https://github.com/apache/activemq.git
New feature and test for: https://issues.apache.org/jira/browse/AMQ-3878
git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1349585 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
59b38fcc43
commit
ccf601e4e4
|
@ -16,6 +16,13 @@
|
|||
*/
|
||||
package org.apache.activemq.plugin;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URI;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.jms.JMSException;
|
||||
import javax.management.ObjectName;
|
||||
|
||||
import org.apache.activemq.advisory.AdvisorySupport;
|
||||
import org.apache.activemq.broker.Broker;
|
||||
import org.apache.activemq.broker.BrokerFilter;
|
||||
|
@ -39,12 +46,6 @@ import org.apache.activemq.util.IdGenerator;
|
|||
import org.apache.activemq.util.LongSequenceGenerator;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.jms.JMSException;
|
||||
import javax.management.ObjectName;
|
||||
import java.io.File;
|
||||
import java.net.URI;
|
||||
import java.util.Set;
|
||||
/**
|
||||
* A StatisticsBroker You can retrieve a Map Message for a Destination - or
|
||||
* Broker containing statistics as key-value pairs The message must contain a
|
||||
|
@ -55,6 +56,7 @@ public class StatisticsBroker extends BrokerFilter {
|
|||
private static Logger LOG = LoggerFactory.getLogger(StatisticsBroker.class);
|
||||
static final String STATS_DESTINATION_PREFIX = "ActiveMQ.Statistics.Destination";
|
||||
static final String STATS_BROKER_PREFIX = "ActiveMQ.Statistics.Broker";
|
||||
static final String STATS_BROKER_RESET_HEADER = "ActiveMQ.Statistics.Broker.Reset";
|
||||
static final String STATS_SUBSCRIPTION_PREFIX = "ActiveMQ.Statistics.Subscription";
|
||||
private static final IdGenerator ID_GENERATOR = new IdGenerator();
|
||||
private final LongSequenceGenerator messageIdGenerator = new LongSequenceGenerator();
|
||||
|
@ -123,6 +125,11 @@ public class StatisticsBroker extends BrokerFilter {
|
|||
sendSubStats(producerExchange.getConnectionContext(), getBrokerView().getQueueSubscribers(), replyTo);
|
||||
sendSubStats(producerExchange.getConnectionContext(), getBrokerView().getTopicSubscribers(), replyTo);
|
||||
} else if (brokerStats) {
|
||||
|
||||
if (messageSend.getProperties().containsKey(STATS_BROKER_RESET_HEADER)) {
|
||||
getBrokerView().resetStatistics();
|
||||
}
|
||||
|
||||
ActiveMQMapMessage statsMessage = new ActiveMQMapMessage();
|
||||
SystemUsage systemUsage = brokerService.getSystemUsage();
|
||||
DestinationStatistics stats = regionBroker.getDestinationStatistics();
|
||||
|
|
|
@ -16,13 +16,7 @@
|
|||
*/
|
||||
package org.apache.activemq.plugin;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.apache.activemq.ActiveMQConnectionFactory;
|
||||
import org.apache.activemq.broker.BrokerFactory;
|
||||
import org.apache.activemq.broker.BrokerPlugin;
|
||||
import org.apache.activemq.broker.BrokerService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import java.net.URI;
|
||||
|
||||
import javax.jms.Connection;
|
||||
import javax.jms.ConnectionFactory;
|
||||
|
@ -32,7 +26,15 @@ import javax.jms.MessageConsumer;
|
|||
import javax.jms.MessageProducer;
|
||||
import javax.jms.Queue;
|
||||
import javax.jms.Session;
|
||||
import java.net.URI;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.apache.activemq.ActiveMQConnectionFactory;
|
||||
import org.apache.activemq.broker.BrokerFactory;
|
||||
import org.apache.activemq.broker.BrokerPlugin;
|
||||
import org.apache.activemq.broker.BrokerService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* A BrokerStatisticsPluginTest
|
||||
|
@ -63,8 +65,34 @@ public class BrokerStatisticsPluginTest extends TestCase{
|
|||
System.err.println(name+"="+reply.getObject(name));
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
public void testBrokerStatsReset() throws Exception{
|
||||
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
Queue replyTo = session.createTemporaryQueue();
|
||||
MessageConsumer consumer = session.createConsumer(replyTo);
|
||||
Queue testQueue = session.createQueue("Test.Queue");
|
||||
Queue query = session.createQueue(StatisticsBroker.STATS_BROKER_PREFIX);
|
||||
MessageProducer producer = session.createProducer(null);
|
||||
|
||||
producer.send(testQueue, session.createMessage());
|
||||
|
||||
Message msg = session.createMessage();
|
||||
msg.setJMSReplyTo(replyTo);
|
||||
producer.send(query, msg);
|
||||
MapMessage reply = (MapMessage) consumer.receive(10*1000);
|
||||
assertNotNull(reply);
|
||||
assertTrue(reply.getMapNames().hasMoreElements());
|
||||
assertTrue(reply.getLong("enqueueCount") >= 1);
|
||||
|
||||
msg = session.createMessage();
|
||||
msg.setBooleanProperty(StatisticsBroker.STATS_BROKER_RESET_HEADER, true);
|
||||
msg.setJMSReplyTo(replyTo);
|
||||
producer.send(query, msg);
|
||||
reply = (MapMessage) consumer.receive(10*1000);
|
||||
assertNotNull(reply);
|
||||
assertTrue(reply.getMapNames().hasMoreElements());
|
||||
assertEquals(0, reply.getLong("enqueueCount"));
|
||||
}
|
||||
|
||||
public void testDestinationStats() throws Exception{
|
||||
|
@ -89,10 +117,9 @@ public class BrokerStatisticsPluginTest extends TestCase{
|
|||
System.err.println(name+"="+reply.getObject(name));
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public void testSubscriptionStats() throws Exception{
|
||||
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
|
||||
Queue replyTo = session.createTemporaryQueue();
|
||||
|
@ -115,8 +142,6 @@ public class BrokerStatisticsPluginTest extends TestCase{
|
|||
String name = e.nextElement().toString();
|
||||
System.err.println(name+"="+reply.getObject(name));
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
|
@ -136,7 +161,6 @@ public class BrokerStatisticsPluginTest extends TestCase{
|
|||
}
|
||||
|
||||
protected BrokerService createBroker() throws Exception {
|
||||
//return createBroker("org/apache/activemq/plugin/statistics-plugin-broker.xml");
|
||||
BrokerService answer = new BrokerService();
|
||||
BrokerPlugin[] plugins = new BrokerPlugin[1];
|
||||
plugins[0] = new StatisticsBrokerPlugin();
|
||||
|
|
Loading…
Reference in New Issue