You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2017/06/21 11:19:33 UTC

svn commit: r1799427 - in /sling/trunk/bundles/extensions/event/resource/src: main/java/org/apache/sling/event/impl/jobs/jmx/QueueMBeanImpl.java test/java/org/apache/sling/event/impl/jobs/jmx/QueuesMBeanImplTest.java

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