Expose QueuedNotificationManager statistics
[yangtools.git] / common / util / src / main / java / org / opendaylight / yangtools / util / concurrent / QueuedNotificationManager.java
index 35ef8bce75861f7a52a8cdb5408cfb23bf5b7333..68055fda957b3c2f7bde722765c2a119a475c86e 100644 (file)
@@ -69,6 +69,7 @@ public final class QueuedNotificationManager<L, N> implements NotificationManage
     private static final long TASK_WAIT_NANOS = TimeUnit.MILLISECONDS.toNanos(10);
 
     private final ConcurrentMap<ListenerKey<L>, NotificationTask> listenerCache = new ConcurrentHashMap<>();
+    private final @NonNull QueuedNotificationManagerMXBean mxBean = new QueuedNotificationManagerMXBeanImpl(this);
     private final @NonNull BatchedInvoker<L, N> listenerInvoker;
     private final @NonNull Executor executor;
     private final @NonNull String name;
@@ -105,6 +106,15 @@ public final class QueuedNotificationManager<L, N> implements NotificationManage
         return maxQueueCapacity;
     }
 
+    /**
+     * Return an {@link QueuedNotificationManagerMXBean} tied to this instance.
+     *
+     * @return An QueuedNotificationManagerMXBean object.
+     */
+    public @NonNull QueuedNotificationManagerMXBean getMXBean() {
+        return mxBean;
+    }
+
     /**
      * Returns the {@link Executor} to used for notification tasks.
      */