From: Tibor Král Date: Thu, 4 Jun 2020 16:50:51 +0000 (+0200) Subject: Add sender actor to the ForwardingDataTreeChangeListener X-Git-Tag: v2.0.2~3 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=d752aa7aa98aabe8544a80abd14dbeb1712fea80;hp=010261cc7d6199cf31acea8639271e91e3b003d9 Add sender actor to the ForwardingDataTreeChangeListener The ForwardingDataTreeChangeListener is created when a shard registers new listener. It then sends dataTreeChanges to said listener but doesn't specify the sender. The RootListenerActor however needs to know which shard produced the DataTreeChanged message. Signed-off-by: Tibor Král Change-Id: I4971cfaefa10c3136e0ddcc350ec7e00e68e6b42 --- diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupport.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupport.java index 348b2aa939..09586b270b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupport.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupport.java @@ -37,7 +37,7 @@ final class DataTreeChangeListenerSupport extends LeaderLocalDelegateFactory changes) { LOG.debug("Sending DataTreeChanged to {}", actor); - actor.tell(new DataTreeChanged(changes), ActorRef.noSender()); + actor.tell(new DataTreeChanged(changes), sendingActor); } @Override public void onInitialData() { LOG.debug("Sending OnInitialData to {}", actor); - actor.tell(OnInitialData.INSTANCE, ActorRef.noSender()); + actor.tell(OnInitialData.INSTANCE, sendingActor); } @Override public String toString() { - return "ForwardingDataTreeChangeListener [actor=" + actor + "]"; + return "ForwardingDataTreeChangeListener [actor=" + actor + + ", sending actor=" + (sendingActor != null ? sendingActor : "NO_SENDER") + "]"; } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java index f9804c92e7..14a0c3af14 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java @@ -24,7 +24,7 @@ public class ForwardingDataTreeChangeListenerTest extends AbstractActorTest { final ActorRef actorRef = getSystem().actorOf(MessageCollectorActor.props()); ForwardingDataTreeChangeListener forwardingListener = new ForwardingDataTreeChangeListener( - getSystem().actorSelection(actorRef.path())); + getSystem().actorSelection(actorRef.path()), ActorRef.noSender()); Collection expected = Arrays.asList(Mockito.mock(DataTreeCandidate.class)); forwardingListener.onDataTreeChanged(expected);