From: Michael Vorburger Date: Thu, 24 Aug 2017 17:31:23 +0000 (+0200) Subject: Bug 9034: TracingBroker with TracingReadOnlyTransaction X-Git-Tag: release/oxygen~130 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=0222180da7a953db6c26ce5b756c066ac5434acd Bug 9034: TracingBroker with TracingReadOnlyTransaction The new TracingReadOnlyTransaction wrapper doesn't do anything interesting yet - but it will, in the related upcoming next change. This is one of a serious of (small, easy to review) commits which is part of a solution I'm proposing in order to be able to detect OOM issues such as Bug 9034, based on using the mdsal-trace DataBroker. Change-Id: Ifa82c50d9c9eac76af99bf6a58e5e1955ee7429c Signed-off-by: Michael Vorburger --- diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java index aeba2832a4..7feb361db2 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java +++ b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java @@ -304,7 +304,7 @@ public class TracingBroker implements TracingDOMDataBroker { @Override public DOMDataReadOnlyTransaction newReadOnlyTransaction() { - return delegate.newReadOnlyTransaction(); + return new TracingReadOnlyTransaction(delegate.newReadOnlyTransaction(), this); } @Nonnull diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadOnlyTransaction.java b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadOnlyTransaction.java new file mode 100644 index 0000000000..a93f7f9c43 --- /dev/null +++ b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadOnlyTransaction.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2017 Red Hat, 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.controller.md.sal.trace.dom.impl; + +import com.google.common.base.Optional; +import com.google.common.util.concurrent.CheckedFuture; +import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; +import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +class TracingReadOnlyTransaction implements DOMDataReadOnlyTransaction { + + private final DOMDataReadOnlyTransaction delegate; + private final TracingBroker tracingBroker; + + TracingReadOnlyTransaction(DOMDataReadOnlyTransaction delegate, TracingBroker tracingBroker) { + this.delegate = delegate; + this.tracingBroker = tracingBroker; + } + + @Override + public CheckedFuture>, ReadFailedException> read(LogicalDatastoreType store, + YangInstanceIdentifier path) { + return delegate.read(store, path); + } + + @Override + public CheckedFuture exists(LogicalDatastoreType store, YangInstanceIdentifier path) { + return delegate.exists(store, path); + } + + @Override + public Object getIdentifier() { + return delegate.getIdentifier(); + } + + @Override + public void close() { + delegate.close(); + } + +} diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingTransactionChain.java b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingTransactionChain.java index 13312ea469..b158dbcf4a 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingTransactionChain.java +++ b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingTransactionChain.java @@ -25,7 +25,7 @@ class TracingTransactionChain implements DOMTransactionChain { @Override public DOMDataReadOnlyTransaction newReadOnlyTransaction() { - return delegate.newReadOnlyTransaction(); + return new TracingReadOnlyTransaction(delegate.newReadOnlyTransaction(), tracingBroker); } @Override