X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDataChangeListenerSupport.java;h=939ddf8fad842ac947b427f28a09ee3810f8de42;hb=fd7d9b244744df4c2c1460c8c24431532a9a45b3;hp=7a033cf21fd2d1037c56e6125ae4637048deef71;hpb=189586eeeeeeb8a9b6ed7398450d198f1864c307;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerSupport.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerSupport.java index 7a033cf21f..939ddf8fad 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerSupport.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerSupport.java @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.base.Preconditions; import java.util.ArrayList; import java.util.List; import akka.actor.ActorRef; @@ -26,16 +25,15 @@ final class DataChangeListenerSupport extends LeaderLocalDelegateFactory delayedListenerRegistrations = new ArrayList<>(); private final List dataChangeListeners = new ArrayList<>(); - private final Shard shard; DataChangeListenerSupport(final Shard shard) { - this.shard = Preconditions.checkNotNull(shard); + super(shard); } @Override void onLeadershipChange(final boolean isLeader) { for (ActorSelection dataChangeListener : dataChangeListeners) { - dataChangeListener.tell(new EnableNotification(isLeader), shard.getSelf()); + dataChangeListener.tell(new EnableNotification(isLeader), getSelf()); } if (isLeader) { @@ -52,39 +50,37 @@ final class DataChangeListenerSupport extends LeaderLocalDelegateFactory>> registration; if (isLeader) { registration = createDelegate(message); } else { - LOG.debug("{}: Shard is not the leader - delaying registration", shard.persistenceId()); + LOG.debug("{}: Shard is not the leader - delaying registration", persistenceId()); DelayedListenerRegistration delayedReg = new DelayedListenerRegistration(message); delayedListenerRegistrations.add(delayedReg); registration = delayedReg; } - ActorRef listenerRegistration = shard.getContext().actorOf( - DataChangeListenerRegistration.props(registration)); + ActorRef listenerRegistration = createActor(DataChangeListenerRegistration.props(registration)); LOG.debug("{}: registerDataChangeListener sending reply, listenerRegistrationPath = {} ", - shard.persistenceId(), listenerRegistration.path()); + persistenceId(), listenerRegistration.path()); - shard.getSender().tell(new RegisterChangeListenerReply(listenerRegistration), shard.getSelf()); + tellSender(new RegisterChangeListenerReply(listenerRegistration)); } @Override ListenerRegistration>> createDelegate( final RegisterChangeListener message) { - ActorSelection dataChangeListenerPath = shard.getContext().system().actorSelection( - message.getDataChangeListenerPath()); + ActorSelection dataChangeListenerPath = selectActor(message.getDataChangeListenerPath()); // Notify the listener if notifications should be enabled or not // If this shard is the leader then it will enable notifications else // it will not - dataChangeListenerPath.tell(new EnableNotification(true), shard.getSelf()); + dataChangeListenerPath.tell(new EnableNotification(true), getSelf()); // Now store a reference to the data change listener so it can be notified // at a later point if notifications should be enabled or disabled @@ -93,9 +89,9 @@ final class DataChangeListenerSupport extends LeaderLocalDelegateFactory> listener = new DataChangeListenerProxy(dataChangeListenerPath); - LOG.debug("{}: Registering for path {}", shard.persistenceId(), message.getPath()); + LOG.debug("{}: Registering for path {}", persistenceId(), message.getPath()); - return shard.getDataStore().registerChangeListener(message.getPath(), listener, + return getShard().getDataStore().registerChangeListener(message.getPath(), listener, message.getScope()); } }