X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=trace%2Fmdsal-trace-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Ftrace%2Fimpl%2FTracingBroker.java;h=1a56d625e7c5af7a4bb6363279d445180f71dda8;hb=b8a896e6dfc47374f99efee157683dc8a7ef8860;hp=49df6240bd8117fa726f4fc11475f86db1b4a6fb;hpb=889d6606afceea88af3884ee340008c0f8810496;p=mdsal.git 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..1a56d625e7 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 @@ -16,15 +16,16 @@ import java.util.List; import java.util.Set; 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.DOMDataTreeChangeListener; +import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; import org.opendaylight.mdsal.dom.api.DOMTransactionChain; import org.opendaylight.mdsal.trace.api.TracingDOMDataBroker; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsaltrace.rev160908.Config; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -301,15 +302,31 @@ 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) -> { - final var rootId = domDataTreeIdentifier.path(); - if (isRegistrationWatched(rootId, domDataTreeIdentifier.datastore())) { - LOG.warn("{} registration (registerDataTreeChangeListener) for {} from {}.", - listener instanceof ClusteredDOMDataTreeChangeListener ? "Clustered" : "Non-clustered", + if (DataTreeChangeExtension.class.equals(type) && ext instanceof DataTreeChangeExtension treeChange) { + return type.cast(new DataTreeChangeExtension() { + @Override + public Registration registerTreeChangeListener(final DOMDataTreeIdentifier treeId, + final DOMDataTreeChangeListener listener) { + notifyIfWatched("Non-clustered", treeId, listener); + return treeChange.registerTreeChangeListener(treeId, listener); + } + + @Override + @Deprecated(since = "13.0.0", forRemoval = true) + public Registration registerLegacyTreeChangeListener(final DOMDataTreeIdentifier treeId, + final DOMDataTreeChangeListener listener) { + notifyIfWatched("Non-clustered", treeId, listener); + return treeChange.registerLegacyTreeChangeListener(treeId, listener); + } + + private void notifyIfWatched(final String kind, final DOMDataTreeIdentifier treeId, + final DOMDataTreeChangeListener listener) { + final var rootId = treeId.path(); + if (isRegistrationWatched(rootId, treeId.datastore()) && LOG.isWarnEnabled()) { + LOG.warn("{} registration (registerDataTreeChangeListener) for {} from {}.", kind, toPathString(rootId), getStackSummary()); + } } - return treeChange.registerDataTreeChangeListener(domDataTreeIdentifier, listener); }); } return ext;