import org.opendaylight.controller.eos.akka.registry.listener.owner.command.ListenerCommand;
import org.opendaylight.controller.eos.akka.registry.listener.type.command.CandidatesChanged;
import org.opendaylight.controller.eos.akka.registry.listener.type.command.EntityOwnerChanged;
+import org.opendaylight.controller.eos.akka.registry.listener.type.command.TerminateListener;
import org.opendaylight.controller.eos.akka.registry.listener.type.command.TypeListenerCommand;
import org.opendaylight.mdsal.eos.dom.api.DOMEntity;
import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListener;
return newReceiveBuilder()
.onMessage(CandidatesChanged.class, this::onCandidatesChanged)
.onMessage(EntityOwnerChanged.class, this::onOwnerChanged)
+ .onMessage(TerminateListener.class, this::onTerminate)
.build();
}
private Behavior<TypeListenerCommand> onOwnerChanged(final EntityOwnerChanged rsp) {
LOG.debug("{} : Entity-type: {} listener, owner change: {}", localMember, entityType, rsp);
-
- listener.ownershipChanged(rsp.getOwnershipChange());
+ listener.ownershipChanged(rsp.entity(), rsp.change(), false);
return this;
}
+ private Behavior<TypeListenerCommand> onTerminate(final TerminateListener command) {
+ LOG.debug("Terminating listener for type: {}, listener: {}", entityType, listener);
+ return Behaviors.stopped();
+ }
+
private static String encodeEntityToActorName(final DOMEntity entity) {
return "type=" + entity.getType() + ",entity="
+ entity.getIdentifier().getLastPathArgument().getNodeType().getLocalName() + "-" + UUID.randomUUID();