From ddba94d2538db03bdca182ab29309ebf83cd81c9 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Tue, 25 Feb 2014 01:19:43 +0000 Subject: QPID-5579 : Use annotations to generate statistics values git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1571510 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/protocol/v1_0/SendingLink_1_0.java | 4 +-- .../server/management/amqp/ManagementNode.java | 5 ++-- .../server/management/plugin/HttpManagement.java | 2 +- .../rest/ConfiguredObjectToMapConverter.java | 23 ++++----------- .../plugin/servlet/rest/MessageServlet.java | 2 +- .../rest/ConfiguredObjectToMapConverterTest.java | 13 ++------- .../org/apache/qpid/server/jmx/JMXManagement.java | 4 +-- .../mbeans/AbstractStatisticsGatheringMBean.java | 27 +++++++++-------- .../qpid/server/jmx/mbeans/ConnectionMBean.java | 34 ++++++++++++++++++---- .../apache/qpid/server/jmx/mbeans/QueueMBean.java | 16 ++++------ .../server/jmx/mbeans/ServerInformationMBean.java | 24 +++++++++++++++ .../server/jmx/mbeans/VirtualHostManagerMBean.java | 23 +++++++++++++++ .../server/jmx/mbeans/ConnectionMBeanTest.java | 13 ++++----- .../qpid/server/jmx/mbeans/QueueMBeanTest.java | 22 +++++++------- .../jmx/mbeans/ServerInformationMBeanTest.java | 11 ++----- 15 files changed, 129 insertions(+), 94 deletions(-) (limited to 'qpid/java/broker-plugins') diff --git a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java index be6eba3a72..94120371fb 100644 --- a/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java +++ b/qpid/java/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLink_1_0.java @@ -224,8 +224,8 @@ public class SendingLink_1_0 implements SendingLinkListener, Link_1_0, DeliveryS List bindingsToRemove = new ArrayList(); for(Binding existingBinding : bindings) { - if(existingBinding.getExchange() != _vhost.getDefaultExchange() - && existingBinding.getExchange() != exchange) + if(existingBinding.getExchangeImpl() != _vhost.getDefaultExchange() + && existingBinding.getExchangeImpl() != exchange) { bindingsToRemove.add(existingBinding); } diff --git a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java index 9c9e2a011f..c163bfa238 100644 --- a/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java +++ b/qpid/java/broker-plugins/management-amqp/src/main/java/org/apache/qpid/server/management/amqp/ManagementNode.java @@ -33,11 +33,11 @@ import org.apache.qpid.server.message.ServerMessage; import org.apache.qpid.server.message.internal.InternalMessage; import org.apache.qpid.server.message.internal.InternalMessageHeader; import org.apache.qpid.server.model.ManagedObject; -import org.apache.qpid.server.model.Attribute; import org.apache.qpid.server.model.ConfigurationChangeListener; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Model; import org.apache.qpid.server.model.State; +import org.apache.qpid.server.model.adapter.AbstractConfiguredObject; import org.apache.qpid.server.plugin.MessageConverter; import org.apache.qpid.server.plugin.SystemNodeCreator; import org.apache.qpid.server.protocol.AMQSessionModel; @@ -215,7 +215,8 @@ class ManagementNode implements MessageSource())); diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java index 14196310a5..047cdfc29b 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagement.java @@ -430,7 +430,7 @@ public class HttpManagement extends AbstractPluginAdapter implem @Override public Collection getAttributeNames() { - return Attribute.getAttributeNames(HttpManagement.class); + return getAttributeNames(HttpManagement.class); } @Override diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java index 0d5d868af2..2cf7f3f80c 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverter.java @@ -21,14 +21,12 @@ package org.apache.qpid.server.management.plugin.servlet.rest; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Model; -import org.apache.qpid.server.model.Statistics; public class ConfiguredObjectToMapConverter { @@ -81,25 +79,14 @@ public class ConfiguredObjectToMapConverter private void incorporateStatisticsIntoMap( final ConfiguredObject confObject, Map object) { - Statistics statistics = confObject.getStatistics(); - Map statMap = new HashMap(); - if (statistics != null) - { - for(String name : statistics.getStatisticNames()) - { - Object value = statistics.getStatistic(name); - if(value != null) - { - statMap.put(name, value); - } - } + Map statMap = confObject.getStatistics(); - if(!statMap.isEmpty()) - { - object.put(STATISTICS_MAP_KEY, statMap); - } + if(!statMap.isEmpty()) + { + object.put(STATISTICS_MAP_KEY, statMap); } + } private void incorporateChildrenIntoMap( diff --git a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java index fa7fb06077..d28338b354 100644 --- a/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java +++ b/qpid/java/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/MessageServlet.java @@ -106,7 +106,7 @@ public class MessageServlet extends AbstractServlet response.setContentType("application/json"); final List> messages = messageCollector.getMessages(); - int queueSize = ((Number) queue.getStatistics().getStatistic(Queue.QUEUE_DEPTH_MESSAGES)).intValue(); + int queueSize = (int) queue.getQueueDepthMessages(); String min = messages.isEmpty() ? "0" : messages.get(0).get("position").toString(); String max = messages.isEmpty() ? "0" : messages.get(messages.size()-1).get("position").toString(); response.setHeader("Content-Range", (min + "-" + max + "/" + queueSize)); diff --git a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java index 8e5c5e1c10..0c2b6a5385 100644 --- a/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java +++ b/qpid/java/broker-plugins/management-http/src/test/java/org/apache/qpid/server/management/plugin/servlet/rest/ConfiguredObjectToMapConverterTest.java @@ -25,6 +25,7 @@ import static org.apache.qpid.server.management.plugin.servlet.rest.ConfiguredOb import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -32,7 +33,6 @@ import junit.framework.TestCase; import org.apache.qpid.server.model.ConfiguredObject; import org.apache.qpid.server.model.Model; -import org.apache.qpid.server.model.Statistics; public class ConfiguredObjectToMapConverterTest extends TestCase { @@ -50,8 +50,7 @@ public class ConfiguredObjectToMapConverterTest extends TestCase final String statisticName = "statisticName"; final int statisticValue = 10; - Statistics mockStatistics = createMockStatistics(statisticName, statisticValue); - when(_configuredObject.getStatistics()).thenReturn(mockStatistics); + when(_configuredObject.getStatistics()).thenReturn(Collections.singletonMap(statisticName, (Number) statisticValue)); Map resultMap = _converter.convertObjectToMap(_configuredObject, ConfiguredObject.class, 0); Map statsAsMap = (Map) resultMap.get(STATISTICS_MAP_KEY); @@ -127,14 +126,6 @@ public class ConfiguredObjectToMapConverterTest extends TestCase when(mockConfiguredObject.getAttribute(attributeName)).thenReturn(attributeValue); } - private Statistics createMockStatistics(String statName, int statValue) - { - Statistics mockStatistics = mock(Statistics.class); - when(mockStatistics.getStatisticNames()).thenReturn(Arrays.asList(statName)); - when(mockStatistics.getStatistic(statName)).thenReturn(statValue); - return mockStatistics; - } - private static interface TestChild extends ConfiguredObject { } diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java index cb3cde8259..b1999b1292 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/JMXManagement.java @@ -24,9 +24,7 @@ package org.apache.qpid.server.jmx; import java.io.IOException; import java.lang.reflect.Type; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; import java.util.UUID; @@ -320,7 +318,7 @@ public class JMXManagement extends AbstractPluginAdapter implemen @Override public Collection getAttributeNames() { - return Attribute.getAttributeNames(JMXManagement.class); + return getAttributeNames(JMXManagement.class); } @Override diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/AbstractStatisticsGatheringMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/AbstractStatisticsGatheringMBean.java index 6ab7db3629..6223d9d906 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/AbstractStatisticsGatheringMBean.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/AbstractStatisticsGatheringMBean.java @@ -66,10 +66,10 @@ abstract class AbstractStatisticsGatheringMBean exte final long period = time - _lastStatUpdateTime; if(period > _statUpdatePeriod) { - long messagesReceived = getStatistic(VirtualHost.MESSAGES_IN); - long messagesSent = getStatistic(VirtualHost.MESSAGES_OUT); - long bytesReceived = getStatistic(VirtualHost.BYTES_IN); - long bytesSent = getStatistic(VirtualHost.BYTES_OUT); + long messagesReceived = getMessagesIn(); + long messagesSent = getMessagesOut(); + long bytesReceived = getBytesIn(); + long bytesSent = getBytesOut(); double messageReceivedRate = (double)(messagesReceived - _lastMessagesReceived) / (double)period; double messageSentRate = (double)(messagesSent - _lastMessagesSent) / (double)period; @@ -109,10 +109,13 @@ abstract class AbstractStatisticsGatheringMBean exte } } - private long getStatistic(String name) - { - return (Long) getConfiguredObject().getStatistics().getStatistic(name); - } + protected abstract long getBytesOut(); + + protected abstract long getBytesIn(); + + protected abstract long getMessagesOut(); + + protected abstract long getMessagesIn(); public synchronized void resetStatistics() throws Exception { @@ -147,13 +150,13 @@ abstract class AbstractStatisticsGatheringMBean exte public synchronized long getTotalMessagesDelivered() { updateStats(); - return getStatistic(Connection.MESSAGES_OUT); + return getMessagesOut(); } public synchronized long getTotalDataDelivered() { updateStats(); - return getStatistic(Connection.BYTES_OUT); + return getBytesOut(); } protected final T getConfiguredObject() @@ -188,13 +191,13 @@ abstract class AbstractStatisticsGatheringMBean exte public synchronized long getTotalMessagesReceived() { updateStats(); - return getStatistic(Connection.MESSAGES_IN); + return getMessagesIn(); } public synchronized long getTotalDataReceived() { updateStats(); - return getStatistic(Connection.BYTES_IN); + return getBytesIn(); } } diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java index 34366a196c..a016ff9d9d 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ConnectionMBean.java @@ -39,7 +39,6 @@ import org.apache.qpid.management.common.mbeans.ManagedConnection; import org.apache.qpid.server.jmx.ManagedObject; import org.apache.qpid.server.model.Connection; import org.apache.qpid.server.model.Session; -import org.apache.qpid.server.model.Statistics; import org.apache.qpid.server.util.ServerScopedRuntimeException; public class ConnectionMBean extends AbstractStatisticsGatheringMBean implements ManagedConnection @@ -75,6 +74,30 @@ public class ConnectionMBean extends AbstractStatisticsGatheringMBean0l); diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java index 67abe77e1f..4775650954 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/QueueMBean.java @@ -149,7 +149,7 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN public Integer getMessageCount() { - return getStatisticValue(Queue.QUEUE_DEPTH_MESSAGES).intValue(); + return (int) _queue.getQueueDepthMessages(); } public Integer getMaximumDeliveryCount() @@ -159,22 +159,22 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN public Long getReceivedMessageCount() { - return getStatisticValue(Queue.TOTAL_ENQUEUED_MESSAGES).longValue(); + return _queue.getTotalEnqueuedMessages(); } public Long getQueueDepth() { - return getStatisticValue(Queue.QUEUE_DEPTH_BYTES).longValue(); + return _queue.getQueueDepthBytes(); } public Integer getActiveConsumerCount() { - return getStatisticValue(Queue.CONSUMER_COUNT_WITH_CREDIT).intValue(); + return (int) _queue.getConsumerCountWithCredit(); } public Integer getConsumerCount() { - return getStatisticValue(Queue.CONSUMER_COUNT).intValue(); + return (int) _queue.getConsumerCount(); } public String getOwner() @@ -676,12 +676,6 @@ public class QueueMBean extends AMQManagedObject implements ManagedQueue, QueueN _queue.setAttribute(Queue.DESCRIPTION, getDescription(), description); } - private Number getStatisticValue(String name) - { - final Number statistic = (Number) _queue.getStatistics().getStatistic(name); - return statistic == null ? Integer.valueOf(0) : statistic; - } - @Override public String getMessageGroupKey() { diff --git a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ServerInformationMBean.java b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ServerInformationMBean.java index 67d5861dec..75a395bef5 100644 --- a/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ServerInformationMBean.java +++ b/qpid/java/broker-plugins/management-jmx/src/main/java/org/apache/qpid/server/jmx/mbeans/ServerInformationMBean.java @@ -44,6 +44,30 @@ public class ServerInformationMBean extends AbstractStatisticsGatheringMBean