X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FDefaultShardDataTreeChangeListenerPublisher.java;h=a63859e9e695516488129a496319d1070e9b3804;hp=b539443f6ef72ad3ebe3c2c315efd4174f10afba;hb=95c296a7c1e8e186a88a0a0dc82e080b2185db33;hpb=38402d3e9b8976a40d7926efe47a06243210562f diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataTreeChangeListenerPublisher.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataTreeChangeListenerPublisher.java index b539443f6e..a63859e9e6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataTreeChangeListenerPublisher.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataTreeChangeListenerPublisher.java @@ -8,14 +8,13 @@ package org.opendaylight.controller.cluster.datastore; import java.util.Collection; -import java.util.Collections; import javax.annotation.concurrent.NotThreadSafe; -import org.opendaylight.controller.md.sal.dom.spi.AbstractDOMDataTreeChangeListenerRegistration; -import org.opendaylight.controller.sal.core.spi.data.AbstractDOMStoreTreeChangePublisher; +import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; +import org.opendaylight.mdsal.dom.spi.AbstractDOMDataTreeChangeListenerRegistration; +import org.opendaylight.mdsal.dom.spi.store.AbstractDOMStoreTreeChangePublisher; +import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,18 +40,29 @@ final class DefaultShardDataTreeChangeListenerPublisher extends AbstractDOMStore } @Override - protected void notifyListeners(final Collection> registrations, - final YangInstanceIdentifier path, final DataTreeCandidateNode node) { - final Collection changes = Collections.singleton( - DataTreeCandidates.newDataTreeCandidate(path, node)); - - for (AbstractDOMDataTreeChangeListenerRegistration reg : registrations) { - reg.getInstance().onDataTreeChanged(changes); - } + protected void notifyListener(AbstractDOMDataTreeChangeListenerRegistration registration, + Collection changes) { + registration.getInstance().onDataTreeChanged(changes); } @Override protected void registrationRemoved(final AbstractDOMDataTreeChangeListenerRegistration registration) { LOG.debug("Registration {} removed", registration); } + + @Override + public ListenerRegistration + registerTreeChangeListener(final YangInstanceIdentifier treeId, final L listener) { + final AbstractDOMDataTreeChangeListenerRegistration registration = + super.registerTreeChangeListener(treeId, (org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener) + changes -> listener.onDataTreeChanged(changes)); + + return new org.opendaylight.controller.md.sal.dom.spi.AbstractDOMDataTreeChangeListenerRegistration( + listener) { + @Override + protected void removeRegistration() { + registration.close(); + } + }; + } }