X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDataTreeChangeListenerProxy.java;h=a45ae52afd4abde5f7bb8fd10df8063c7d571a38;hp=124724b9c20c410760e43402b0f6958d5e7c9f9c;hb=b14856a01f6515e6063f82e5fb448f7e9a57029b;hpb=59e84273be97b1115fb3fb0f06364b7491a40385 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerProxy.java index 124724b9c2..a45ae52afd 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerProxy.java @@ -11,6 +11,7 @@ import akka.actor.ActorRef; import akka.actor.ActorSelection; import akka.actor.PoisonPill; import akka.dispatch.OnComplete; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import javax.annotation.concurrent.GuardedBy; import org.opendaylight.controller.cluster.datastore.exceptions.LocalShardNotFoundException; @@ -18,6 +19,7 @@ import org.opendaylight.controller.cluster.datastore.messages.CloseDataTreeChang import org.opendaylight.controller.cluster.datastore.messages.RegisterDataTreeChangeListener; import org.opendaylight.controller.cluster.datastore.messages.RegisterDataTreeChangeListenerReply; import org.opendaylight.controller.cluster.datastore.utils.ActorContext; +import org.opendaylight.controller.md.sal.dom.api.ClusteredDOMDataTreeChangeListener; import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener; import org.opendaylight.yangtools.concepts.AbstractListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -94,7 +96,8 @@ final class DataTreeChangeListenerProxy ext private void doRegistration(final ActorRef shard, final YangInstanceIdentifier path) { Future future = actorContext.executeOperationAsync(shard, - new RegisterDataTreeChangeListener(path, dataChangeListenerActor), + new RegisterDataTreeChangeListener(path, dataChangeListenerActor, + getInstance() instanceof ClusteredDOMDataTreeChangeListener), actorContext.getDatastoreContext().getShardInitializationTimeout()); future.onComplete(new OnComplete(){ @@ -106,9 +109,19 @@ final class DataTreeChangeListenerProxy ext } else { RegisterDataTreeChangeListenerReply reply = (RegisterDataTreeChangeListenerReply) result; setListenerRegistrationActor(actorContext.actorSelection( - reply.getListenerRegistrationPath().path())); + reply.getListenerRegistrationPath())); } } }, actorContext.getClientDispatcher()); } + + @VisibleForTesting + ActorSelection getListenerRegistrationActor() { + return listenerRegistrationActor; + } + + @VisibleForTesting + ActorRef getDataChangeListenerActor() { + return dataChangeListenerActor; + } }