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=641e185d1b3db68fd2c0d21984b1fe3f198b26b0;hpb=82d49007372df18b968afa6d297c991b91bf1fc2;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 641e185d1b..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; @@ -233,8 +234,8 @@ public class TracingBroker implements TracingDOMDataBroker { } static void toPathString(final InstanceIdentifier iid, final StringBuilder builder) { - for (InstanceIdentifier.PathArgument pathArg : iid.getPathArguments()) { - builder.append('/').append(pathArg.getType().getSimpleName()); + for (var pathArg : iid.getPathArguments()) { + builder.append('/').append(pathArg.type().getSimpleName()); } } @@ -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;