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=e099d0bc925096ae50558bbdf8e758cbb97619a4;hb=546cd1fd100dbaa36908b22c2f422320dbd8c4b2;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..e099d0bc92 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,11 +7,12 @@ */ 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.mdsal.dom.api.DOMDataTreeChangeListener; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; @@ -21,23 +22,26 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; * * @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) { + protected void handleReceive(final Object message) { if (message instanceof RegisterListener) { RegisterListener reg = (RegisterListener)message; + LOG.debug("{}: Received {}", logContext(), reg); if (reg.initialState.isPresent()) { DefaultShardDataTreeChangeListenerPublisher.notifySingleListener(reg.path, reg.listener, - reg.initialState.get()); + reg.initialState.get(), 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); } @@ -56,10 +60,16 @@ public class ShardDataTreeChangePublisherActor 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); + 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() + "]"; } } }