sal-common-impl: use lambdas
[controller.git] / opendaylight / md-sal / sal-clustering-commons / src / main / java / org / opendaylight / controller / cluster / common / actor / MeteredBoundedMailbox.java
index 7517efeb9028f5df15349a62e74eadb4bf91f15e..c56863f1ee6bb4028e750f9b5dd6d02aea59d213 100644 (file)
@@ -21,16 +21,14 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import scala.concurrent.duration.FiniteDuration;
 
-public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue<MeteredBoundedMailbox.MeteredMessageQueue> {
+public class MeteredBoundedMailbox implements MailboxType,
+        ProducesMessageQueue<MeteredBoundedMailbox.MeteredMessageQueue> {
+    private static final Logger LOG = LoggerFactory.getLogger(MeteredBoundedMailbox.class);
+    private static final String QUEUE_SIZE = "q-size";
 
-    private final Logger LOG = LoggerFactory.getLogger(MeteredBoundedMailbox.class);
-
-    private MeteredMessageQueue queue;
-    private Integer capacity;
-    private FiniteDuration pushTimeOut;
-    private MetricRegistry registry;
-
-    private final String QUEUE_SIZE = "q-size";
+    private final Integer capacity;
+    private final FiniteDuration pushTimeOut;
+    private final MetricRegistry registry;
 
     public MeteredBoundedMailbox(ActorSystem.Settings settings, Config config) {
 
@@ -38,16 +36,16 @@ public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue<
         this.capacity = commonConfig.getMailBoxCapacity();
         this.pushTimeOut = commonConfig.getMailBoxPushTimeout();
 
-        MetricsReporter reporter = MetricsReporter.getInstance();
+        MetricsReporter reporter = MetricsReporter.getInstance(MeteringBehavior.DOMAIN);
         registry = reporter.getMetricsRegistry();
     }
 
 
     @Override
     public MeteredMessageQueue create(final scala.Option<ActorRef> owner, scala.Option<ActorSystem> system) {
-        this.queue = new MeteredMessageQueue(this.capacity, this.pushTimeOut);
-        monitorQueueSize(owner, this.queue);
-        return this.queue;
+        final MeteredMessageQueue queue = new MeteredMessageQueue(this.capacity, this.pushTimeOut);
+        monitorQueueSize(owner, queue);
+        return queue;
     }
 
     private void monitorQueueSize(scala.Option<ActorRef> owner, final MeteredMessageQueue monitoredQueue) {
@@ -57,31 +55,28 @@ public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue<
         String actorName = owner.get().path().toStringWithoutAddress();
         String metricName = MetricRegistry.name(actorName, QUEUE_SIZE);
 
-        if (registry.getMetrics().containsKey(metricName))
+        if (registry.getMetrics().containsKey(metricName)) {
             return; //already registered
+        }
 
-        Gauge queueSize = getQueueSizeGuage(monitoredQueue);
+        Gauge<Integer> queueSize = getQueueSizeGuage(monitoredQueue);
         registerQueueSizeMetric(metricName, queueSize);
     }
 
 
     public static class MeteredMessageQueue extends BoundedDequeBasedMailbox.MessageQueue {
+        private static final long serialVersionUID = 1L;
 
         public MeteredMessageQueue(int capacity, FiniteDuration pushTimeOut) {
             super(capacity, pushTimeOut);
         }
     }
 
-    private Gauge getQueueSizeGuage(final MeteredMessageQueue monitoredQueue ){
-        return new Gauge<Integer>() {
-            @Override
-            public Integer getValue() {
-                return monitoredQueue.size();
-            }
-        };
+    private static Gauge<Integer> getQueueSizeGuage(final MeteredMessageQueue monitoredQueue) {
+        return () -> monitoredQueue.size();
     }
 
-    private void registerQueueSizeMetric(String metricName, Gauge metric){
+    private void registerQueueSizeMetric(String metricName, Gauge<Integer> metric) {
         try {
             registry.register(metricName,metric);
         } catch (IllegalArgumentException e) {