Deprecate Clustered(DOM)DataTreeChangeListener
[mdsal.git] / dom / mdsal-dom-spi / src / main / java / org / opendaylight / mdsal / dom / spi / AbstractDOMDataBroker.java
index 92144cd0688ecdb8fcf2eae82a3cb26b86a3846f..ae82fcea6997f8dcc8711768119ab6fa7fa3c855 100644 (file)
@@ -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.<Extension>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)) {