X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardDataTreeChangePublisherActor.java;h=5e96133aaa116cda6d68a3a5f42bb0551d524026;hb=HEAD;hp=f054ccdae8258c6246317cd7cb18bfc47364471d;hpb=ec870dee9bacb971f11bc747b69e84ac37f5d746;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangePublisherActor.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangePublisherActor.java index f054ccdae8..5e96133aaa 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangePublisherActor.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangePublisherActor.java @@ -7,37 +7,40 @@ */ package org.opendaylight.controller.cluster.datastore; +import static java.util.Objects.requireNonNull; + import akka.actor.Props; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; +import java.util.Optional; import java.util.function.Consumer; -import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; /** * Actor used to generate and publish DataTreeChange notifications. * * @author Thomas Pantelis */ -public class ShardDataTreeChangePublisherActor - extends ShardDataTreeNotificationPublisherActor { +public final class ShardDataTreeChangePublisherActor + extends ShardDataTreeNotificationPublisherActor { private ShardDataTreeChangePublisherActor(final String name, final String logContext) { - super(new DefaultShardDataTreeChangeListenerPublisher(), name, logContext); + super(new DefaultShardDataTreeChangeListenerPublisher(logContext), name, logContext); } @Override - protected void handleReceive(Object message) { - if (message instanceof RegisterListener) { - RegisterListener reg = (RegisterListener)message; + protected void handleReceive(final Object message) { + if (message instanceof RegisterListener reg) { + LOG.debug("{}: Received {}", logContext(), reg); if (reg.initialState.isPresent()) { DefaultShardDataTreeChangeListenerPublisher.notifySingleListener(reg.path, reg.listener, - reg.initialState.get()); + reg.initialState.orElseThrow(), logContext()); + } else { + reg.listener.onInitialData(); } - publisher().registerTreeChangeListener(reg.path, reg.listener, Optional.absent(), reg.onRegistration); + publisher().registerTreeChangeListener(reg.path, reg.listener, reg.onRegistration); } else { super.handleReceive(message); } @@ -51,15 +54,20 @@ public class ShardDataTreeChangePublisherActor private final YangInstanceIdentifier path; private final DOMDataTreeChangeListener listener; private final Optional initialState; - private final Consumer> onRegistration; + private final Consumer onRegistration; RegisterListener(final YangInstanceIdentifier path, final DOMDataTreeChangeListener listener, - final Optional initialState, - final Consumer> onRegistration) { - this.path = Preconditions.checkNotNull(path); - this.listener = Preconditions.checkNotNull(listener); - this.initialState = Preconditions.checkNotNull(initialState); - this.onRegistration = Preconditions.checkNotNull(onRegistration); + final Optional initialState, final Consumer onRegistration) { + this.path = requireNonNull(path); + this.listener = requireNonNull(listener); + this.initialState = requireNonNull(initialState); + this.onRegistration = requireNonNull(onRegistration); + } + + @Override + public String toString() { + return "RegisterListener [path=" + path + ", listener=" + listener + ", initialState present=" + + initialState.isPresent() + "]"; } } }