BUG 2676 : Use notification-dispatcher for DataChangeListener actors 96/15596/1
authorMoiz Raja <moraja@cisco.com>
Sat, 21 Feb 2015 17:59:06 +0000 (09:59 -0800)
committerMoiz Raja <moraja@cisco.com>
Sat, 21 Feb 2015 17:59:06 +0000 (09:59 -0800)
Change-Id: I154e1598a3058a978902fd6db5512d51dff36a62
Signed-off-by: Moiz Raja <moraja@cisco.com>
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxy.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorContext.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistrationProxyTest.java

index 3b30107e048e9fb513c80d03ed26fc3fd14eade7..681132e660d9608f3dea75e58eb4a9f3809f8dd6 100644 (file)
@@ -93,7 +93,7 @@ public class DataChangeListenerRegistrationProxy implements ListenerRegistration
     public void init(final YangInstanceIdentifier path, final AsyncDataBroker.DataChangeScope scope) {
 
         dataChangeListenerActor = actorContext.getActorSystem().actorOf(
-                DataChangeListener.props(listener));
+                DataChangeListener.props(listener).withDispatcher(actorContext.getNotificationDispatcherPath()));
 
         Future<ActorRef> findFuture = actorContext.findLocalShardAsync(shardName);
         findFuture.onComplete(new OnComplete<ActorRef>() {
index 507d2389b1547a0b7f861e881516fd04d62cad35..26e6318f6d4d14aa5944a909696bbaa8b5f7f207 100644 (file)
@@ -527,4 +527,8 @@ public class ActorContext {
         return this.dispatchers.getDispatcher(Dispatchers.DispatcherType.Client);
     }
 
+    public String getNotificationDispatcherPath(){
+        return this.dispatchers.getDispatcherPath(Dispatchers.DispatcherType.Notification);
+    }
+
 }
index 8ad2e899aab5b5fa8ad7bf3e4a74c3ca66210964..f6c8f07f6b18cd51b5b7ba72ae77a693a3885ec0 100644 (file)
@@ -36,6 +36,7 @@ import org.opendaylight.controller.cluster.datastore.messages.LocalShardNotFound
 import org.opendaylight.controller.cluster.datastore.messages.RegisterChangeListener;
 import org.opendaylight.controller.cluster.datastore.messages.RegisterChangeListenerReply;
 import org.opendaylight.controller.cluster.datastore.utils.ActorContext;
+import org.opendaylight.controller.cluster.datastore.utils.Dispatchers;
 import org.opendaylight.controller.cluster.datastore.utils.DoNothingActor;
 import org.opendaylight.controller.md.cluster.datastore.model.TestModel;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
@@ -231,6 +232,7 @@ public class DataChangeListenerRegistrationProxyTest extends AbstractActorTest {
             doReturn(DatastoreContext.newBuilder().build()).when(actorContext).getDatastoreContext();
             doReturn(getSystem().dispatchers().defaultGlobalDispatcher()).when(actorContext).getClientDispatcher();
             doReturn(getSystem()).when(actorContext).getActorSystem();
+            doReturn(Dispatchers.DEFAULT_DISPATCHER_PATH).when(actorContext).getNotificationDispatcherPath();
             doReturn(getSystem().actorSelection(getRef().path())).
                     when(actorContext).actorSelection(getRef().path());
             doReturn(duration("5 seconds")).when(actorContext).getOperationDuration();