From 1487e0720cbb7f7b1f04507a85494c1a96dc82ad Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 18 Jan 2024 20:30:44 +0100 Subject: [PATCH] Rename DOMDataTreeChangeService This is not a free-standing service, but a well-known extension. Move it to DOMDataBroker. JIRA: MDSAL-841 Change-Id: Ib1cf203f6f285d7fa4f3922fff6958665839a9a8 Signed-off-by: Robert Varga --- .../adapter/BindingDOMDataBrokerAdapter.java | 4 +- ...indingDOMDataTreeChangeServiceAdapter.java | 10 ++-- ...ngDOMDataTreeChangeServiceAdapterTest.java | 4 +- .../mdsal/dom/api/DOMDataBroker.java | 38 ++++++++++++++ .../dom/api/DOMDataTreeChangeService.java | 50 ------------------- .../dom/broker/DOMDataTreeListenerTest.java | 18 +++---- .../mdsal/dom/spi/AbstractDOMDataBroker.java | 3 +- .../netty/NettyReplicationSource.java | 4 +- .../replicate/netty/SourceRequestHandler.java | 6 +-- .../netty/SourceSingletonService.java | 6 +-- .../mdsal/trace/impl/TracingBroker.java | 5 +- 11 files changed, 67 insertions(+), 81 deletions(-) delete mode 100644 dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeChangeService.java diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataBrokerAdapter.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataBrokerAdapter.java index 9fbc7f23a2..3b848b2ee7 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataBrokerAdapter.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataBrokerAdapter.java @@ -22,7 +22,7 @@ import org.opendaylight.mdsal.binding.api.TransactionChain; import org.opendaylight.mdsal.binding.api.WriteTransaction; import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMAdapterBuilder.Factory; import org.opendaylight.mdsal.dom.api.DOMDataBroker; -import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService; +import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension; import org.opendaylight.mdsal.dom.api.DOMService; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.DataObject; @@ -43,7 +43,7 @@ public class BindingDOMDataBrokerAdapter extends AbstractBindingAdapter<@NonNull public BindingDOMDataBrokerAdapter(final AdapterContext adapterContext, final DOMDataBroker domDataBroker) { super(adapterContext, domDataBroker); - final var domTreeChange = domDataBroker.extension(DOMDataTreeChangeService.class); + final var domTreeChange = domDataBroker.extension(DataTreeChangeExtension.class); treeChangeService = domTreeChange == null ? null : new BindingDOMDataTreeChangeServiceAdapter(adapterContext, domTreeChange); } diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeChangeServiceAdapter.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeChangeServiceAdapter.java index d82203ba5d..9ec4e275ec 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeChangeServiceAdapter.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeChangeServiceAdapter.java @@ -14,24 +14,24 @@ import org.opendaylight.mdsal.binding.api.DataListener; import org.opendaylight.mdsal.binding.api.DataTreeChangeListener; import org.opendaylight.mdsal.binding.api.DataTreeChangeService; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; -import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService; +import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.DataObject; /** - * Adapter exposing Binding {@link DataTreeChangeService} and wrapping a {@link DOMDataTreeChangeService} and is + * Adapter exposing Binding {@link DataTreeChangeService} and wrapping a {@link DataTreeChangeExtension} and is * responsible for translation and instantiation of {@link BindingDOMDataTreeChangeListenerAdapter} adapters. * *

* Each registered {@link DataTreeChangeListener} is wrapped using adapter and registered directly to DOM service. */ -final class BindingDOMDataTreeChangeServiceAdapter extends AbstractBindingAdapter +final class BindingDOMDataTreeChangeServiceAdapter extends AbstractBindingAdapter implements DataTreeChangeService { BindingDOMDataTreeChangeServiceAdapter(final AdapterContext adapterContext, - final DOMDataTreeChangeService dataTreeChangeService) { - super(adapterContext, dataTreeChangeService); + final DataTreeChangeExtension dataTreeChangeExtension) { + super(adapterContext, dataTreeChangeExtension); } @Override diff --git a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeChangeServiceAdapterTest.java b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeChangeServiceAdapterTest.java index a935e83156..42a8d2e959 100644 --- a/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeChangeServiceAdapterTest.java +++ b/binding/mdsal-binding-dom-adapter/src/test/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMDataTreeChangeServiceAdapterTest.java @@ -29,8 +29,8 @@ import org.opendaylight.mdsal.binding.api.DataTreeModification; import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecServices; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener; +import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; -import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsal.test.binding.rev140701.Top; import org.opendaylight.yangtools.concepts.ListenerRegistration; @@ -48,7 +48,7 @@ public class BindingDOMDataTreeChangeServiceAdapterTest { private static final YangInstanceIdentifier TOP_YIID = YangInstanceIdentifier.of(Top.QNAME); @Mock - private DOMDataTreeChangeService mockDOMService; + private DataTreeChangeExtension mockDOMService; @Mock private BindingDOMCodecServices services; diff --git a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataBroker.java b/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataBroker.java index 6654fbdab5..34f822c3fa 100644 --- a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataBroker.java +++ b/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataBroker.java @@ -93,4 +93,42 @@ public interface DOMDataBroker extends DOMService + * You are able to register for notifications for any node or subtree which can be represented using + * {@link DOMDataTreeIdentifier}. + * + *

+ * You are able to register for data change notifications for a subtree or leaf even if it does not exist. You + * will receive notification once that node is created. + * + *

+ * If there is any pre-existing data in the data tree for the path for which you are registering, you will + * receive an initial data change event, which will contain all pre-existing data, marked as created. + * + *

+ * This method returns a {@link Registration} object. To "unregister" your listener for changes call + * the {@link Registration#close()} method on the returned object. + * + *

+ * You MUST explicitly unregister your listener when you no longer want to receive notifications. This is + * especially true in OSGi environments, where failure to do so during bundle shutdown can lead to stale + * listeners being still registered. + * + * @param treeId Data tree identifier of the subtree which should be watched for changes. + * @param listener Listener instance which is being registered + * @return A {@link Registration} object, which may be used to unregister your listener using + * {@link Registration#close()} to stop delivery of change events. + * @throws NullPointerException if any of the arguments is {@code null} + */ + Registration registerDataTreeChangeListener(DOMDataTreeIdentifier treeId, DOMDataTreeChangeListener listener); + } } diff --git a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeChangeService.java b/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeChangeService.java deleted file mode 100644 index 8585feae4e..0000000000 --- a/dom/mdsal-dom-api/src/main/java/org/opendaylight/mdsal/dom/api/DOMDataTreeChangeService.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.mdsal.dom.api; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.opendaylight.yangtools.concepts.Registration; - -/** - * A {@link DOMDataBroker.Extension} which allows users to register for changes to a subtree. - */ -@NonNullByDefault -public interface DOMDataTreeChangeService extends DOMDataBroker.Extension { - /** - * Registers a {@link DOMDataTreeChangeListener} to receive notifications when data changes under a given path in - * the conceptual data tree. - * - *

- * You are able to register for notifications for any node or subtree which can be represented using - * {@link DOMDataTreeIdentifier}. - * - *

- * You are able to register for data change notifications for a subtree or leaf even if it does not exist. You will - * receive notification once that node is created. - * - *

- * If there is any pre-existing data in the data tree for the path for which you are registering, you will receive - * an initial data change event, which will contain all pre-existing data, marked as created. - * - *

- * This method returns a {@link Registration} object. To "unregister" your listener for changes call - * the {@link Registration#close()} method on the returned object. - * - *

- * You MUST explicitly unregister your listener when you no longer want to receive notifications. This is especially - * true in OSGi environments, where failure to do so during bundle shutdown can lead to stale listeners being still - * registered. - * - * @param treeId Data tree identifier of the subtree which should be watched for changes. - * @param listener Listener instance which is being registered - * @return A {@link Registration} object, which may be used to unregister your listener using - * {@link Registration#close()} to stop delivery of change events. - * @throws NullPointerException if any of the arguments is {@code null} - */ - Registration registerDataTreeChangeListener(DOMDataTreeIdentifier treeId, DOMDataTreeChangeListener listener); -} diff --git a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeListenerTest.java b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeListenerTest.java index 4b91c8ee62..eda4c00888 100644 --- a/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeListenerTest.java +++ b/dom/mdsal-dom-broker/src/test/java/org/opendaylight/mdsal/dom/broker/DOMDataTreeListenerTest.java @@ -28,8 +28,8 @@ import org.junit.Before; import org.junit.Test; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.common.api.TransactionCommitDeadlockException; +import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; -import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.spi.AbstractDOMDataBroker; import org.opendaylight.mdsal.dom.spi.store.DOMStore; @@ -117,7 +117,7 @@ public class DOMDataTreeListenerTest extends AbstractDatastoreTest { public void writeContainerEmptyTreeTest() throws InterruptedException { final var latch = new CountDownLatch(1); - final var dataTreeChangeService = getDOMDataTreeChangeService(); + final var dataTreeChangeService = getDataTreeChangeExtension(); assertNotNull("DOMDataTreeChangeService not found, cannot continue with test!", dataTreeChangeService); @@ -145,7 +145,7 @@ public class DOMDataTreeListenerTest extends AbstractDatastoreTest { public void replaceContainerContainerInTreeTest() throws ExecutionException, InterruptedException { final var latch = new CountDownLatch(2); - final var dataTreeChangeService = getDOMDataTreeChangeService(); + final var dataTreeChangeService = getDataTreeChangeExtension(); assertNotNull("DOMDataTreeChangeService not found, cannot continue with test!", dataTreeChangeService); @@ -184,7 +184,7 @@ public class DOMDataTreeListenerTest extends AbstractDatastoreTest { public void deleteContainerContainerInTreeTest() throws ExecutionException, InterruptedException { final var latch = new CountDownLatch(2); - final var dataTreeChangeService = getDOMDataTreeChangeService(); + final var dataTreeChangeService = getDataTreeChangeExtension(); assertNotNull("DOMDataTreeChangeService not found, cannot continue with test!", dataTreeChangeService); var writeTx = domBroker.newWriteOnlyTransaction(); @@ -223,7 +223,7 @@ public class DOMDataTreeListenerTest extends AbstractDatastoreTest { public void replaceChildListContainerInTreeTest() throws ExecutionException, InterruptedException { final var latch = new CountDownLatch(2); - final var dataTreeChangeService = getDOMDataTreeChangeService(); + final var dataTreeChangeService = getDataTreeChangeExtension(); assertNotNull("DOMDataTreeChangeService not found, cannot continue with test!", dataTreeChangeService); var writeTx = domBroker.newWriteOnlyTransaction(); @@ -264,7 +264,7 @@ public class DOMDataTreeListenerTest extends AbstractDatastoreTest { public void rootModificationChildListenerTest() throws ExecutionException, InterruptedException { final var latch = new CountDownLatch(2); - final var dataTreeChangeService = getDOMDataTreeChangeService(); + final var dataTreeChangeService = getDataTreeChangeExtension(); assertNotNull("DOMDataTreeChangeService not found, cannot continue with test!", dataTreeChangeService); @@ -304,7 +304,7 @@ public class DOMDataTreeListenerTest extends AbstractDatastoreTest { public void listEntryChangeNonRootRegistrationTest() throws ExecutionException, InterruptedException { final var latch = new CountDownLatch(2); - final var dataTreeChangeService = getDOMDataTreeChangeService(); + final var dataTreeChangeService = getDataTreeChangeExtension(); assertNotNull("DOMDataTreeChangeService not found, cannot continue with test!", dataTreeChangeService); var writeTx = domBroker.newWriteOnlyTransaction(); @@ -373,8 +373,8 @@ public class DOMDataTreeListenerTest extends AbstractDatastoreTest { assertEquals(expectedMod, candidateNode.modificationType()); } - private DOMDataTreeChangeService getDOMDataTreeChangeService() { - return domBroker.extension(DOMDataTreeChangeService.class); + private DataTreeChangeExtension getDataTreeChangeExtension() { + return domBroker.extension(DataTreeChangeExtension.class); } static class CommitExecutorService extends ForwardingExecutorService { 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..d1be9449ea 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,7 +14,6 @@ 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.DOMTransactionChain; import org.opendaylight.mdsal.dom.spi.store.DOMStore; import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain; @@ -35,7 +34,7 @@ public abstract class AbstractDOMDataBroker extends AbstractDOMForwardedTransact final var builder = ImmutableList.builder(); if (isSupported(datastores, DOMStoreTreeChangePublisher.class)) { - builder.add((DOMDataTreeChangeService) (treeId, listener) -> { + builder.add((DataTreeChangeExtension) (treeId, listener) -> { final var dsType = treeId.datastore(); if (getTxFactories().get(dsType) instanceof DOMStoreTreeChangePublisher publisher) { return publisher.registerTreeChangeListener(treeId.path(), listener); diff --git a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSource.java b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSource.java index 91ad211a31..eee9740097 100644 --- a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSource.java +++ b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSource.java @@ -13,7 +13,7 @@ import static com.google.common.base.Verify.verifyNotNull; import com.google.common.annotations.VisibleForTesting; import java.time.Duration; import org.opendaylight.mdsal.dom.api.DOMDataBroker; -import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService; +import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider; import org.opendaylight.yangtools.concepts.Registration; import org.osgi.service.component.annotations.Activate; @@ -67,7 +67,7 @@ public final class NettyReplicationSource { final ClusterSingletonServiceProvider singleton, final boolean enabled, final int listenPort, final Duration keepaliveInterval, final int maxMissedKeepalives) { LOG.debug("Source {}", enabled ? "enabled" : "disabled"); - final var dtcs = verifyNotNull(broker.extension(DOMDataTreeChangeService.class), + final var dtcs = verifyNotNull(broker.extension(DataTreeChangeExtension.class), "Missing DOMDataTreeChangeService in broker %s", broker); checkArgument(maxMissedKeepalives > 0, "max-missed-keepalives %s must be greater than 0", maxMissedKeepalives); return enabled ? singleton.registerClusterSingletonService(new SourceSingletonService(bootstrap, diff --git a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SourceRequestHandler.java b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SourceRequestHandler.java index a4a6d98740..1f9a15e074 100644 --- a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SourceRequestHandler.java +++ b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SourceRequestHandler.java @@ -19,7 +19,7 @@ import java.io.IOException; import java.util.List; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener; -import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService; +import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; @@ -33,11 +33,11 @@ import org.slf4j.LoggerFactory; final class SourceRequestHandler extends SimpleChannelInboundHandler { private static final Logger LOG = LoggerFactory.getLogger(SourceRequestHandler.class); - private final DOMDataTreeChangeService dtcs; + private final DataTreeChangeExtension dtcs; private Registration reg; - SourceRequestHandler(final DOMDataTreeChangeService dtcs) { + SourceRequestHandler(final DataTreeChangeExtension dtcs) { this.dtcs = requireNonNull(dtcs); } diff --git a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SourceSingletonService.java b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SourceSingletonService.java index c86423e72d..22cc0c95f8 100644 --- a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SourceSingletonService.java +++ b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/SourceSingletonService.java @@ -26,7 +26,7 @@ import java.util.HashSet; import java.util.List; import java.util.concurrent.TimeUnit; import org.checkerframework.checker.lock.qual.GuardedBy; -import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService; +import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension; import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; @@ -43,7 +43,7 @@ final class SourceSingletonService extends ChannelInitializer imp new ServiceGroupIdentifier(SourceSingletonService.class.getName()); private final BootstrapSupport bootstrapSupport; - private final DOMDataTreeChangeService dtcs; + private final DataTreeChangeExtension dtcs; private final int listenPort; @GuardedBy("this") @@ -53,7 +53,7 @@ final class SourceSingletonService extends ChannelInitializer imp @GuardedBy("this") private Channel serverChannel; - SourceSingletonService(final BootstrapSupport bootstrapSupport, final DOMDataTreeChangeService dtcs, + SourceSingletonService(final BootstrapSupport bootstrapSupport, final DataTreeChangeExtension dtcs, final int listenPort, final Duration keepaliveInterval, final int maxMissedKeepalives) { this.bootstrapSupport = requireNonNull(bootstrapSupport); this.dtcs = requireNonNull(dtcs); diff --git a/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingBroker.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingBroker.java index 49df6240bd..b7b528b636 100644 --- a/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingBroker.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingBroker.java @@ -18,7 +18,6 @@ import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener; import org.opendaylight.mdsal.dom.api.DOMDataBroker; -import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; @@ -301,8 +300,8 @@ public class TracingBroker implements TracingDOMDataBroker { @Override public T extension(final Class type) { final var ext = delegate.extension(type); - if (DOMDataTreeChangeService.class.equals(type) && ext instanceof DOMDataTreeChangeService treeChange) { - return type.cast((DOMDataTreeChangeService) (domDataTreeIdentifier, listener) -> { + if (DataTreeChangeExtension.class.equals(type) && ext instanceof DataTreeChangeExtension treeChange) { + return type.cast((DataTreeChangeExtension) (domDataTreeIdentifier, listener) -> { final var rootId = domDataTreeIdentifier.path(); if (isRegistrationWatched(rootId, domDataTreeIdentifier.datastore())) { LOG.warn("{} registration (registerDataTreeChangeListener) for {} from {}.", -- 2.36.6