- void onMessage(final RegisterChangeListener message, final boolean isLeader) {
-
- LOG.debug("{}: registerDataChangeListener for {}, leader: {}", shard.persistenceId(), message.getPath(), isLeader);
-
- ListenerRegistration<AsyncDataChangeListener<YangInstanceIdentifier,
- NormalizedNode<?, ?>>> registration;
- if (isLeader) {
- registration = createDelegate(message);
- } else {
- LOG.debug("{}: Shard is not the leader - delaying registration", shard.persistenceId());
-
- DelayedListenerRegistration delayedReg = new DelayedListenerRegistration(message);
- delayedListenerRegistrations.add(delayedReg);
- registration = delayedReg;
- }
-
- ActorRef listenerRegistration = shard.getContext().actorOf(
- DataChangeListenerRegistration.props(registration));
-
- LOG.debug("{}: registerDataChangeListener sending reply, listenerRegistrationPath = {} ",
- shard.persistenceId(), listenerRegistration.path());
-
- shard.getSender().tell(new RegisterChangeListenerReply(listenerRegistration), shard.getSelf());
+ protected DelayedDataChangeListenerRegistration newDelayedListenerRegistration(RegisterChangeListener message,
+ ActorRef registrationActor) {
+ return new DelayedDataChangeListenerRegistration(message, registrationActor);