Separate out {Identity,Equality}QueuedNotificationManager 13/83713/22
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 16 Aug 2019 16:00:47 +0000 (18:00 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 8 Nov 2019 22:39:13 +0000 (23:39 +0100)
commit807d0868fa0e9b81332ea12d8fe19f81f88efc08
tree5573b58e9bd744003c9ab3dc1f5c1db15e501ee4
parent4f869bbe2f963d9168eb659bc1761bfd174e6ab3
Separate out {Identity,Equality}QueuedNotificationManager

There are use cases where we would like to use QNM on equality, i.e.
we do not realy have a listener instance, but rather a key to somewhere
else. That other place operates on equality, which makes it incompatible
with the current semantics.

This splits out the baseline queueing logic in from NotificationManager
interface, so that it can be reused to implement different execution
concepts.

QueuedNotificationManager is realized on top of it, so that the baseline
interface is implemented in AbstractQueuedNotificationManager and then
specialized to different lookups.

JIRA: YANGTOOLS-1038
Change-Id: I1123d21664a20ff380ccb7db7096801915491f6e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/AbstractBatchingExecutor.java [new file with mode: 0644]
common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/AbstractQueuedNotificationManager.java [new file with mode: 0644]
common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/EqualityQueuedNotificationManager.java [new file with mode: 0644]
common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/IdentityQueuedNotificationManager.java [new file with mode: 0644]
common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/NotificationManager.java
common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/QueuedNotificationManager.java
common/util/src/main/java/org/opendaylight/yangtools/util/concurrent/QueuedNotificationManagerMXBeanImpl.java