Author: pauls Date: Wed Jun 21 11:19:32 2017 New Revision: 1799427 URL: http://svn.apache.org/viewvc?rev=1799427&view=rev Log: SLING-6975: Use the Statistics from the getStatistics() method of queues for jmx if the queue isn't an instanceof Statistics itself.
Modified: sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/jmx/QueueMBeanImpl.java sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/jmx/QueuesMBeanImplTest.java Modified: sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/jmx/QueueMBeanImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/jmx/QueueMBeanImpl.java?rev=1799427&r1=1799426&r2=1799427&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/jmx/QueueMBeanImpl.java (original) +++ sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/jmx/QueueMBeanImpl.java Wed Jun 21 11:19:32 2017 @@ -31,11 +31,8 @@ public class QueueMBeanImpl extends Abst public QueueMBeanImpl(Queue queue) { this.name = queue.getName(); - if (queue instanceof Statistics) { - this.statistics = (Statistics) queue; - } else { - this.statistics = new EmptyStatistics(); - } + Statistics stats = queue instanceof Statistics ? (Statistics) queue : queue.getStatistics(); + this.statistics = stats != null ? stats : new EmptyStatistics(); } @Override Modified: sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/jmx/QueuesMBeanImplTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/jmx/QueuesMBeanImplTest.java?rev=1799427&r1=1799426&r2=1799427&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/jmx/QueuesMBeanImplTest.java (original) +++ sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/jmx/QueuesMBeanImplTest.java Wed Jun 21 11:19:32 2017 @@ -78,6 +78,22 @@ public class QueuesMBeanImplTest { testStatistics((StatisticsMBean) serviceObject.getValue()); return queue; } + + @Test + public void testAddQueueWithStatistics() { + Queue queue = Mockito.mock(Queue.class); + Statistics stats = Mockito.mock(Statistics.class); + mockStatistics(stats); + Mockito.when(queue.getStatistics()).thenReturn(stats); + Mockito.when(queue.getName()).thenReturn("queue-name"); + Mockito.when(bundleContext.registerService(Mockito.anyString(), Mockito.any(StatisticsMBean.class), Mockito.any(Dictionary.class))).thenReturn(serviceRegistration); + mbean.sendEvent(new QueueStatusEvent(queue,null)); + Mockito.verify(bundleContext, Mockito.only()).registerService(serviceClass.capture(), serviceObject.capture(), serviceProperties.capture()); + Assert.assertEquals("Expected bean to be registerd as a StatisticsMBean ", StatisticsMBean.class.getName(), serviceClass.getValue()); + Assert.assertTrue("Expected service to be an instance of SatisticsMBean", serviceObject.getValue() instanceof StatisticsMBean); + Assert.assertNotNull("Expected properties to have a jmx.objectname", serviceProperties.getValue().get("jmx.objectname")); + testStatistics((StatisticsMBean) serviceObject.getValue()); + } @Test