X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fspi%2FAbstractDOMDataBroker.java;h=ae82fcea6997f8dcc8711768119ab6fa7fa3c855;hb=b8a896e6dfc47374f99efee157683dc8a7ef8860;hp=92144cd0688ecdb8fcf2eae82a3cb26b86a3846f;hpb=7e9012b9820ed399a93d1f302dfa5c0e05583493;p=mdsal.git diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/AbstractDOMDataBroker.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/AbstractDOMDataBroker.java index 92144cd068..ae82fcea69 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/AbstractDOMDataBroker.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/AbstractDOMDataBroker.java @@ -14,11 +14,13 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicLong; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService; +import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; +import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.api.DOMTransactionChain; import org.opendaylight.mdsal.dom.spi.store.DOMStore; import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain; import org.opendaylight.mdsal.dom.spi.store.DOMStoreTreeChangePublisher; +import org.opendaylight.yangtools.concepts.Registration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,12 +37,26 @@ public abstract class AbstractDOMDataBroker extends AbstractDOMForwardedTransact final var builder = ImmutableList.builder(); if (isSupported(datastores, DOMStoreTreeChangePublisher.class)) { - builder.add((DOMDataTreeChangeService) (treeId, listener) -> { - final var dsType = treeId.datastore(); - if (getTxFactories().get(dsType) instanceof DOMStoreTreeChangePublisher publisher) { - return publisher.registerTreeChangeListener(treeId.path(), listener); + builder.add(new DataTreeChangeExtension() { + @Override + public Registration registerTreeChangeListener(final DOMDataTreeIdentifier treeId, + final DOMDataTreeChangeListener listener) { + return getPublisher(treeId.datastore()).registerTreeChangeListener(treeId.path(), listener); + } + + @Override + @Deprecated(since = "13.0.0", forRemoval = true) + public Registration registerLegacyTreeChangeListener(final DOMDataTreeIdentifier treeId, + final DOMDataTreeChangeListener listener) { + return getPublisher(treeId.datastore()).registerLegacyTreeChangeListener(treeId.path(), listener); + } + + private DOMStoreTreeChangePublisher getPublisher(final LogicalDatastoreType datastore) { + if (getTxFactories().get(datastore) instanceof DOMStoreTreeChangePublisher publisher) { + return publisher; + } + throw new IllegalStateException("Publisher for " + datastore + " data store is not available"); } - throw new IllegalStateException("Publisher for " + dsType + " data store is not available"); }); } if (isSupported(datastores, CommitCohortExtension.class)) {