+ tellSender(new RegisterDataTreeNotificationListenerReply(registrationActor));
+ }
+
+ protected ActorSelection processListenerRegistrationMessage(M message) {
+ final ActorSelection listenerActor = selectActor(message.getListenerActorPath());
+
+ // We have a leader so enable the listener.
+ listenerActor.tell(new EnableNotification(true, persistenceId()), getSelf());
+
+ if (!message.isRegisterOnAllInstances()) {
+ // This is a leader-only registration so store a reference to the listener actor so it can be notified
+ // at a later point if notifications should be enabled or disabled.
+ leaderOnlyListenerActors.add(listenerActor);
+ }
+
+ allListenerActors.add(listenerActor);
+
+ return listenerActor;