Merge "Revert "Revert "BUG-1425: Integrated new Binding to Normalized Node codec...
[controller.git] / opendaylight / md-sal / sal-remoterpc-connector / src / main / java / org / opendaylight / controller / remote / rpc / registry / gossip / BucketStore.java
index 2f634ce1fabffea20397cd21cf6196c982418c2d..23cbaca32f483f6af6ba8046e34d9233d326d6c5 100644 (file)
@@ -15,6 +15,7 @@ import akka.actor.UntypedActor;
 import akka.cluster.Cluster;
 import akka.event.Logging;
 import akka.event.LoggingAdapter;
+import org.opendaylight.controller.utils.ConditionalProbe;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -71,6 +72,8 @@ public class BucketStore extends UntypedActor {
      */
     private ActorRef gossiper;
 
+    private ConditionalProbe probe;
+
     public BucketStore(){
         gossiper = getContext().actorOf(Props.create(Gossiper.class), "gossiper");
     }
@@ -88,27 +91,32 @@ public class BucketStore extends UntypedActor {
     @Override
     public void onReceive(Object message) throws Exception {
 
-        log.debug("Received message: node[{}], message[{}]", selfAddress, message);
+        log.debug("Received message: node[{}], message[{}]", selfAddress,
+            message);
 
-        if (message instanceof UpdateBucket)
-            receiveUpdateBucket(((UpdateBucket) message).getBucket());
+        if (probe != null) {
 
-        else if (message instanceof GetAllBuckets)
-            receiveGetAllBucket();
+            probe.tell(message, getSelf());
+        }
 
-        else if (message instanceof GetLocalBucket)
+        if (message instanceof ConditionalProbe) {
+            log.info("Received probe {} {}", getSelf(), message);
+            probe = (ConditionalProbe) message;
+        } else if (message instanceof UpdateBucket) {
+            receiveUpdateBucket(((UpdateBucket) message).getBucket());
+        } else if (message instanceof GetAllBuckets) {
+            receiveGetAllBucket();
+        } else if (message instanceof GetLocalBucket) {
             receiveGetLocalBucket();
-
-        else if (message instanceof GetBucketsByMembers)
-            receiveGetBucketsByMembers(((GetBucketsByMembers) message).getMembers());
-
-        else if (message instanceof GetBucketVersions)
+        } else if (message instanceof GetBucketsByMembers) {
+            receiveGetBucketsByMembers(
+                ((GetBucketsByMembers) message).getMembers());
+        } else if (message instanceof GetBucketVersions) {
             receiveGetBucketVersions();
-
-        else if (message instanceof UpdateRemoteBuckets)
-            receiveUpdateRemoteBuckets(((UpdateRemoteBuckets) message).getBuckets());
-
-        else {
+        } else if (message instanceof UpdateRemoteBuckets) {
+            receiveUpdateRemoteBuckets(
+                ((UpdateRemoteBuckets) message).getBuckets());
+        } else {
             log.debug("Unhandled message [{}]", message);
             unhandled(message);
         }
@@ -270,4 +278,5 @@ public class BucketStore extends UntypedActor {
     Address getSelfAddress() {
         return selfAddress;
     }
+
 }