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


Reply via email to