From 02b6592214e112d1b2d2aacfdc722ce6790370cd Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 8 Jan 2019 12:51:33 +0100 Subject: [PATCH 1/1] Move mdsal-trace into its place This is code incoming from the controller, we need to integrate it into mdsal structure. This patch performs the preliminary move out of opendaylight/md-sal directory. While this code is being built, it is not part of the feature repository yet, so as not to interfere with controller's odl-mdsal-trace feature. JIRA: MDSAL-412 Change-Id: I04cf3dcda5d990f5b1e45a3b3ecf15978a0db958 Signed-off-by: Robert Varga --- artifacts/pom.xml | 16 ++++ features/odl-mdsal-trace/pom.xml | 36 +++++++++ .../src/main/feature/feature.xml | 2 +- features/pom.xml | 3 + opendaylight/md-sal/mdsal-trace/api/pom.xml | 56 -------------- .../md-sal/mdsal-trace/binding-impl/pom.xml | 63 --------------- .../opendaylight/blueprint/impl-blueprint.xml | 39 ---------- opendaylight/md-sal/mdsal-trace/cli/pom.xml | 56 -------------- .../md-sal/mdsal-trace/deploy-site.xml | 50 ------------ .../md-sal/mdsal-trace/dom-impl/pom.xml | 77 ------------------- .../trace/closetracker/impl/package-info.java | 14 ---- .../features/features-mdsal-trace/pom.xml | 26 ------- .../features/odl-mdsal-trace/pom.xml | 67 ---------------- .../md-sal/mdsal-trace/features/pom.xml | 28 ------- opendaylight/md-sal/mdsal-trace/pom.xml | 72 ----------------- pom.xml | 1 + trace/mdsal-trace-api/pom.xml | 55 +++++++++++++ .../trace/api/TracingDOMDataBroker.java | 6 +- .../resources/initial/mdsaltrace_config.xml | 0 .../src/main/yang/mdsaltrace.yang | 0 trace/mdsal-trace-cli/pom.xml | 49 ++++++++++++ .../cli/PrintOpenTransactionsCommand.java | 2 +- trace/mdsal-trace-impl/pom.xml | 67 ++++++++++++++++ .../trace}/impl/AbstractCloseTracked.java | 9 +-- .../impl/AbstractTracingWriteTransaction.java | 21 +++-- .../mdsal/trace}/impl/CloseTracked.java | 6 +- .../trace}/impl/CloseTrackedRegistry.java | 5 +- .../impl/CloseTrackedRegistryReportEntry.java | 9 +-- .../mdsal/trace}/impl/CloseTrackedTrait.java | 19 +++-- .../mdsal/trace}/impl/TracingBroker.java | 65 +++++++--------- .../impl/TracingReadOnlyTransaction.java | 33 ++++---- .../impl/TracingReadWriteTransaction.java | 32 ++++---- .../trace}/impl/TracingTransactionChain.java | 31 ++++---- .../trace}/impl/TracingWriteTransaction.java | 13 ++-- .../opendaylight/blueprint/impl-blueprint.xml | 16 ++-- .../trace/impl}/CloseTrackedRegistryTest.java | 5 +- .../mdsal/trace/test}/TracingBrokerTest.java | 19 ++--- trace/pom.xml | 35 +++++++++ 38 files changed, 392 insertions(+), 711 deletions(-) create mode 100644 features/odl-mdsal-trace/pom.xml rename {opendaylight/md-sal/mdsal-trace/features => features}/odl-mdsal-trace/src/main/feature/feature.xml (71%) delete mode 100644 opendaylight/md-sal/mdsal-trace/api/pom.xml delete mode 100644 opendaylight/md-sal/mdsal-trace/binding-impl/pom.xml delete mode 100644 opendaylight/md-sal/mdsal-trace/binding-impl/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml delete mode 100644 opendaylight/md-sal/mdsal-trace/cli/pom.xml delete mode 100644 opendaylight/md-sal/mdsal-trace/deploy-site.xml delete mode 100644 opendaylight/md-sal/mdsal-trace/dom-impl/pom.xml delete mode 100644 opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/package-info.java delete mode 100644 opendaylight/md-sal/mdsal-trace/features/features-mdsal-trace/pom.xml delete mode 100644 opendaylight/md-sal/mdsal-trace/features/odl-mdsal-trace/pom.xml delete mode 100644 opendaylight/md-sal/mdsal-trace/features/pom.xml delete mode 100644 opendaylight/md-sal/mdsal-trace/pom.xml create mode 100644 trace/mdsal-trace-api/pom.xml rename {opendaylight/md-sal/mdsal-trace/api/src/main/java/org/opendaylight/controller/md/sal => trace/mdsal-trace-api/src/main/java/org/opendaylight/mdsal}/trace/api/TracingDOMDataBroker.java (88%) rename {opendaylight/md-sal/mdsal-trace/api => trace/mdsal-trace-api}/src/main/resources/initial/mdsaltrace_config.xml (100%) rename {opendaylight/md-sal/mdsal-trace/api => trace/mdsal-trace-api}/src/main/yang/mdsaltrace.yang (100%) create mode 100644 trace/mdsal-trace-cli/pom.xml rename {opendaylight/md-sal/mdsal-trace/cli => trace/mdsal-trace-cli}/src/main/java/org/opendaylight/controller/md/sal/trace/cli/PrintOpenTransactionsCommand.java (96%) create mode 100644 trace/mdsal-trace-impl/pom.xml rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/AbstractCloseTracked.java (75%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/AbstractTracingWriteTransaction.java (87%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/CloseTracked.java (86%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/CloseTrackedRegistry.java (97%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/CloseTrackedRegistryReportEntry.java (86%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/CloseTrackedTrait.java (77%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/TracingBroker.java (87%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/TracingReadOnlyTransaction.java (54%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/TracingReadWriteTransaction.java (53%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/TracingTransactionChain.java (74%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom => trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace}/impl/TracingWriteTransaction.java (70%) rename {opendaylight/md-sal/mdsal-trace/dom-impl => trace/mdsal-trace-impl}/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml (71%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests => trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/impl}/CloseTrackedRegistryTest.java (92%) rename {opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests => trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/test}/TracingBrokerTest.java (80%) create mode 100644 trace/pom.xml diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 7b66f86adb..b02086379b 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -289,6 +289,22 @@ 3.0.4-SNAPSHOT + + org.opendaylight.mdsal + mdsal-trace-api + 1.0.4-SNAPSHOT + + + org.opendaylight.mdsal + mdsal-trace-cli + 1.0.4-SNAPSHOT + + + org.opendaylight.mdsal + mdsal-trace-impl + 1.0.4-SNAPSHOT + + diff --git a/features/odl-mdsal-trace/pom.xml b/features/odl-mdsal-trace/pom.xml new file mode 100644 index 0000000000..70de7bb6b2 --- /dev/null +++ b/features/odl-mdsal-trace/pom.xml @@ -0,0 +1,36 @@ + + + 4.0.0 + + org.opendaylight.mdsal + feature-parent + 3.0.4-SNAPSHOT + ../feature-parent + + + odl-mdsal-trace + 1.0.4-SNAPSHOT + OpenDaylight :: TracingBroker + feature + + + + org.opendaylight.mdsal + odl-mdsal-binding-dom-adapter + xml + features + + + org.opendaylight.mdsal + mdsal-trace-api + + + org.opendaylight.mdsal + mdsal-trace-impl + + + org.opendaylight.mdsal + mdsal-trace-cli + + + diff --git a/opendaylight/md-sal/mdsal-trace/features/odl-mdsal-trace/src/main/feature/feature.xml b/features/odl-mdsal-trace/src/main/feature/feature.xml similarity index 71% rename from opendaylight/md-sal/mdsal-trace/features/odl-mdsal-trace/src/main/feature/feature.xml rename to features/odl-mdsal-trace/src/main/feature/feature.xml index 8e6070ba78..772a84cb4b 100644 --- a/opendaylight/md-sal/mdsal-trace/features/odl-mdsal-trace/src/main/feature/feature.xml +++ b/features/odl-mdsal-trace/src/main/feature/feature.xml @@ -1,6 +1,6 @@ - mvn:org.opendaylight.controller/mdsal-trace-api/${project.version}/xml/config + mvn:org.opendaylight.mdsal/mdsal-trace-api/${project.version}/xml/config diff --git a/features/pom.xml b/features/pom.xml index d754f7bfbc..c667420aad 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -58,6 +58,9 @@ odl-mdsal-singleton-common odl-mdsal-singleton-dom + + odl-mdsal-trace + odl-mdsal-model-rfc6991 diff --git a/opendaylight/md-sal/mdsal-trace/api/pom.xml b/opendaylight/md-sal/mdsal-trace/api/pom.xml deleted file mode 100644 index 2215a9b416..0000000000 --- a/opendaylight/md-sal/mdsal-trace/api/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - 4.0.0 - - - org.opendaylight.controller - mdsal-parent - 1.9.3-SNAPSHOT - ../../parent - - - org.opendaylight.controller - mdsal-trace-api - 1.9.3-SNAPSHOT - bundle - - - - org.opendaylight.controller - sal-core-api - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - attach-artifacts - - attach-artifact - - package - - - - ${project.build.directory}/classes/initial/mdsaltrace_config.xml - xml - config - - - - - - - - - diff --git a/opendaylight/md-sal/mdsal-trace/binding-impl/pom.xml b/opendaylight/md-sal/mdsal-trace/binding-impl/pom.xml deleted file mode 100644 index 977d4dccf5..0000000000 --- a/opendaylight/md-sal/mdsal-trace/binding-impl/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - 4.0.0 - - - org.opendaylight.controller - mdsal-parent - 1.9.3-SNAPSHOT - ../../parent - - - org.opendaylight.controller - mdsal-trace-binding-impl - 1.9.3-SNAPSHOT - bundle - - - - ${project.groupId} - mdsal-trace-api - - - ${project.groupId} - mdsal-trace-dom-impl - - - - - org.mockito - mockito-core - test - - - - - - - org.apache.felix - maven-bundle-plugin - true - - - - org.opendaylight.controller.md.sal.trace.api, - org.opendaylight.controller.md.sal.dom.api, - org.opendaylight.controller.md.sal.binding.api, - org.opendaylight.controller.md.sal.binding.spi, - * - - - - - - - diff --git a/opendaylight/md-sal/mdsal-trace/binding-impl/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml b/opendaylight/md-sal/mdsal-trace/binding-impl/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml deleted file mode 100644 index 6f362132c6..0000000000 --- a/opendaylight/md-sal/mdsal-trace/binding-impl/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/opendaylight/md-sal/mdsal-trace/cli/pom.xml b/opendaylight/md-sal/mdsal-trace/cli/pom.xml deleted file mode 100644 index 599e7671ee..0000000000 --- a/opendaylight/md-sal/mdsal-trace/cli/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - 4.0.0 - - - org.opendaylight.controller - mdsal-parent - 1.9.3-SNAPSHOT - ../../parent - - - org.opendaylight.controller - mdsal-trace-cli - 1.9.3-SNAPSHOT - bundle - - - - ${project.groupId} - mdsal-trace-api - - - org.apache.karaf.shell - org.apache.karaf.shell.core - - - * - * - - - - - - - - - org.apache.felix - maven-bundle-plugin - true - - - * - - - - - - diff --git a/opendaylight/md-sal/mdsal-trace/deploy-site.xml b/opendaylight/md-sal/mdsal-trace/deploy-site.xml deleted file mode 100644 index 0dc77ae595..0000000000 --- a/opendaylight/md-sal/mdsal-trace/deploy-site.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - 4.0.0 - - org.opendaylight.mdsal - deploy-site - 0.1.1-SNAPSHOT - pom - - - latest - dav:https://nexus.opendaylight.org/content/sites/site/${project.groupId}/${stream}/ - - - - - - org.apache.maven.wagon - wagon-webdav-jackrabbit - 2.9 - - - - - - org.apache.maven.plugins - maven-site-plugin - 3.4 - - ${project.build.directory}/staged-site - - - - - - - - opendaylight-site - ${nexus.site.url} - - - diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/pom.xml b/opendaylight/md-sal/mdsal-trace/dom-impl/pom.xml deleted file mode 100644 index a2739060f9..0000000000 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/pom.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - - - 4.0.0 - - - org.opendaylight.controller - mdsal-parent - 1.9.3-SNAPSHOT - ../../parent - - - org.opendaylight.controller - mdsal-trace-dom-impl - 1.9.3-SNAPSHOT - bundle - - - - ${project.groupId} - mdsal-trace-api - - - ${project.groupId} - sal-binding-api - - - ${project.groupId} - sal-core-api - - - ${project.groupId} - sal-broker-impl - - - org.opendaylight.mdsal - mdsal-binding-dom-codec - - - - - org.mockito - mockito-core - test - - - com.google.truth - truth - test - - - - - - org.apache.felix - maven-bundle-plugin - true - - - - org.opendaylight.controller.md.sal.dom.broker.impl, - * - - org.opendaylight.controller.md.sal.trace.dom.impl - - - - - - diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/package-info.java b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/package-info.java deleted file mode 100644 index 60d9674549..0000000000 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/package-info.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * 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 - */ - -/** - * Utilities to track (non) "closing" of objects. - */ -// This generic infra may be moved somewhere else, later -@org.eclipse.jdt.annotation.NonNullByDefault -package org.opendaylight.controller.md.sal.trace.closetracker.impl; diff --git a/opendaylight/md-sal/mdsal-trace/features/features-mdsal-trace/pom.xml b/opendaylight/md-sal/mdsal-trace/features/features-mdsal-trace/pom.xml deleted file mode 100644 index 856e65e1a5..0000000000 --- a/opendaylight/md-sal/mdsal-trace/features/features-mdsal-trace/pom.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - 4.0.0 - - - org.opendaylight.odlparent - feature-repo-parent - 3.1.3 - - - - org.opendaylight.controller - features-mdsal-trace - 1.9.3-SNAPSHOT - OpenDaylight :: TracingBroker - feature - - - org.opendaylight.controller - odl-mdsal-trace - ${project.version} - xml - features - - - diff --git a/opendaylight/md-sal/mdsal-trace/features/odl-mdsal-trace/pom.xml b/opendaylight/md-sal/mdsal-trace/features/odl-mdsal-trace/pom.xml deleted file mode 100644 index 90319cb044..0000000000 --- a/opendaylight/md-sal/mdsal-trace/features/odl-mdsal-trace/pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 4.0.0 - - - org.opendaylight.odlparent - single-feature-parent - 3.1.3 - - - - org.opendaylight.controller - odl-mdsal-trace - 1.9.3-SNAPSHOT - OpenDaylight :: TracingBroker - feature - - - - - org.opendaylight.controller - mdsal-artifacts - ${project.version} - pom - import - - - - - - - - org.opendaylight.controller - odl-mdsal-broker - ${project.version} - xml - features - - - org.opendaylight.controller - odl-mdsal-broker-local - ${project.version} - xml - features - - - org.opendaylight.controller - mdsal-trace-api - ${project.version} - - - org.opendaylight.controller - mdsal-trace-dom-impl - ${project.version} - - - org.opendaylight.controller - mdsal-trace-binding-impl - ${project.version} - - - org.opendaylight.controller - mdsal-trace-cli - ${project.version} - - - diff --git a/opendaylight/md-sal/mdsal-trace/features/pom.xml b/opendaylight/md-sal/mdsal-trace/features/pom.xml deleted file mode 100644 index 413266cf85..0000000000 --- a/opendaylight/md-sal/mdsal-trace/features/pom.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - 4.0.0 - - - org.opendaylight.odlparent - odlparent-lite - 3.1.3 - - - - org.opendaylight.controller - mdsal-trace-feature-aggregator - 1.9.3-SNAPSHOT - pom - - - features-mdsal-trace - odl-mdsal-trace - - diff --git a/opendaylight/md-sal/mdsal-trace/pom.xml b/opendaylight/md-sal/mdsal-trace/pom.xml deleted file mode 100644 index c9e65f0f03..0000000000 --- a/opendaylight/md-sal/mdsal-trace/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - 4.0.0 - - - org.opendaylight.odlparent - odlparent-lite - 3.1.3 - - - - org.opendaylight.controller - mdsal-trace-aggregator - 1.9.3-SNAPSHOT - mdsaltrace - pom - - - api - dom-impl - binding-impl - cli - features - - - - - true - true - - - - - - maven-site - - - ${user.dir}/deploy-site.xml - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - false - - - aggregate - - aggregate - - package - - - - - - - - - diff --git a/pom.xml b/pom.xml index ac3f90a3d7..19e0b3389f 100644 --- a/pom.xml +++ b/pom.xml @@ -34,6 +34,7 @@ model-binding2 entityownership singleton-service + trace diff --git a/trace/mdsal-trace-api/pom.xml b/trace/mdsal-trace-api/pom.xml new file mode 100644 index 0000000000..6916a98888 --- /dev/null +++ b/trace/mdsal-trace-api/pom.xml @@ -0,0 +1,55 @@ + + + + 4.0.0 + + org.opendaylight.mdsal + binding-parent + 3.0.4-SNAPSHOT + ../../binding/binding-parent + + + mdsal-trace-api + 1.0.4-SNAPSHOT + bundle + + + + org.opendaylight.mdsal + mdsal-dom-api + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + attach-artifacts + + attach-artifact + + package + + + + ${project.build.directory}/classes/initial/mdsaltrace_config.xml + xml + config + + + + + + + + + diff --git a/opendaylight/md-sal/mdsal-trace/api/src/main/java/org/opendaylight/controller/md/sal/trace/api/TracingDOMDataBroker.java b/trace/mdsal-trace-api/src/main/java/org/opendaylight/mdsal/trace/api/TracingDOMDataBroker.java similarity index 88% rename from opendaylight/md-sal/mdsal-trace/api/src/main/java/org/opendaylight/controller/md/sal/trace/api/TracingDOMDataBroker.java rename to trace/mdsal-trace-api/src/main/java/org/opendaylight/mdsal/trace/api/TracingDOMDataBroker.java index 88e2261cae..0463328e68 100644 --- a/opendaylight/md-sal/mdsal-trace/api/src/main/java/org/opendaylight/controller/md/sal/trace/api/TracingDOMDataBroker.java +++ b/trace/mdsal-trace-api/src/main/java/org/opendaylight/mdsal/trace/api/TracingDOMDataBroker.java @@ -5,16 +5,15 @@ * 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.api; +package org.opendaylight.mdsal.trace.api; import java.io.PrintStream; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; +import org.opendaylight.mdsal.dom.api.DOMDataBroker; /** * Interface so that the tracing broker service can be more explicitly imported. */ public interface TracingDOMDataBroker extends DOMDataBroker { - /** * Prints a human-readable "report" of all opened but not closed transactions, * including transactions chains and transactions opened by them, onto the printStream. @@ -22,5 +21,4 @@ public interface TracingDOMDataBroker extends DOMDataBroker { * @return true if there were any open transactions, false if none */ boolean printOpenTransactions(PrintStream printStream, int minOpenTransactions); - } diff --git a/opendaylight/md-sal/mdsal-trace/api/src/main/resources/initial/mdsaltrace_config.xml b/trace/mdsal-trace-api/src/main/resources/initial/mdsaltrace_config.xml similarity index 100% rename from opendaylight/md-sal/mdsal-trace/api/src/main/resources/initial/mdsaltrace_config.xml rename to trace/mdsal-trace-api/src/main/resources/initial/mdsaltrace_config.xml diff --git a/opendaylight/md-sal/mdsal-trace/api/src/main/yang/mdsaltrace.yang b/trace/mdsal-trace-api/src/main/yang/mdsaltrace.yang similarity index 100% rename from opendaylight/md-sal/mdsal-trace/api/src/main/yang/mdsaltrace.yang rename to trace/mdsal-trace-api/src/main/yang/mdsaltrace.yang diff --git a/trace/mdsal-trace-cli/pom.xml b/trace/mdsal-trace-cli/pom.xml new file mode 100644 index 0000000000..d21ce3af0f --- /dev/null +++ b/trace/mdsal-trace-cli/pom.xml @@ -0,0 +1,49 @@ + + + + 4.0.0 + + org.opendaylight.mdsal + dom-parent + 3.0.4-SNAPSHOT + ../../dom/dom-parent + + + mdsal-trace-cli + 1.0.4-SNAPSHOT + bundle + + + + org.opendaylight.mdsal + mdsal-trace-api + + + org.apache.karaf.shell + org.apache.karaf.shell.core + provided + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + * + + + + + + diff --git a/opendaylight/md-sal/mdsal-trace/cli/src/main/java/org/opendaylight/controller/md/sal/trace/cli/PrintOpenTransactionsCommand.java b/trace/mdsal-trace-cli/src/main/java/org/opendaylight/controller/md/sal/trace/cli/PrintOpenTransactionsCommand.java similarity index 96% rename from opendaylight/md-sal/mdsal-trace/cli/src/main/java/org/opendaylight/controller/md/sal/trace/cli/PrintOpenTransactionsCommand.java rename to trace/mdsal-trace-cli/src/main/java/org/opendaylight/controller/md/sal/trace/cli/PrintOpenTransactionsCommand.java index 3ebd50657f..04a8f752fa 100644 --- a/opendaylight/md-sal/mdsal-trace/cli/src/main/java/org/opendaylight/controller/md/sal/trace/cli/PrintOpenTransactionsCommand.java +++ b/trace/mdsal-trace-cli/src/main/java/org/opendaylight/controller/md/sal/trace/cli/PrintOpenTransactionsCommand.java @@ -13,7 +13,7 @@ import org.apache.karaf.shell.api.action.Argument; import org.apache.karaf.shell.api.action.Command; import org.apache.karaf.shell.api.action.lifecycle.Reference; import org.apache.karaf.shell.api.action.lifecycle.Service; -import org.opendaylight.controller.md.sal.trace.api.TracingDOMDataBroker; +import org.opendaylight.mdsal.trace.api.TracingDOMDataBroker; /** * Karaf CLI command to dump all open transactions. diff --git a/trace/mdsal-trace-impl/pom.xml b/trace/mdsal-trace-impl/pom.xml new file mode 100644 index 0000000000..a18940fa35 --- /dev/null +++ b/trace/mdsal-trace-impl/pom.xml @@ -0,0 +1,67 @@ + + + + + 4.0.0 + + org.opendaylight.mdsal + dom-parent + 3.0.4-SNAPSHOT + ../../dom/dom-parent + + + mdsal-trace-impl + 1.0.4-SNAPSHOT + bundle + + + + org.opendaylight.mdsal + mdsal-trace-api + + + + org.opendaylight.mdsal + mdsal-binding-api + + + org.opendaylight.mdsal + mdsal-dom-api + + + org.opendaylight.mdsal + mdsal-dom-broker + + + org.opendaylight.mdsal + mdsal-binding-dom-codec + + + + + com.google.truth + truth + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + org.opendaylight.mdsal.trace.impl + + + + + + diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/AbstractCloseTracked.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/AbstractCloseTracked.java similarity index 75% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/AbstractCloseTracked.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/AbstractCloseTracked.java index 785e2ef6ae..1d5e0c448a 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/AbstractCloseTracked.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/AbstractCloseTracked.java @@ -5,20 +5,19 @@ * 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.closetracker.impl; +package org.opendaylight.mdsal.trace.impl; -import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.Nullable; /** * Convenience abstract base class for {@link CloseTracked} implementors. * * @author Michael Vorburger.ch */ -public abstract class AbstractCloseTracked> implements CloseTracked { - +abstract class AbstractCloseTracked> implements CloseTracked { private final CloseTrackedTrait closeTracker; - protected AbstractCloseTracked(CloseTrackedRegistry transactionChainRegistry) { + AbstractCloseTracked(CloseTrackedRegistry transactionChainRegistry) { this.closeTracker = new CloseTrackedTrait<>(transactionChainRegistry, this); } diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/AbstractTracingWriteTransaction.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/AbstractTracingWriteTransaction.java similarity index 87% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/AbstractTracingWriteTransaction.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/AbstractTracingWriteTransaction.java index 553cbfb2a7..d7404c1a43 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/AbstractTracingWriteTransaction.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/AbstractTracingWriteTransaction.java @@ -5,30 +5,30 @@ * 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; +package org.opendaylight.mdsal.trace.impl; + +import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableSet; import com.google.common.util.concurrent.FluentFuture; import java.util.ArrayList; import java.util.List; -import java.util.Objects; import java.util.Set; -import javax.annotation.Nonnull; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -abstract class AbstractTracingWriteTransaction implements DOMDataWriteTransaction { +abstract class AbstractTracingWriteTransaction implements DOMDataTreeWriteTransaction { - private final DOMDataWriteTransaction delegate; + private final DOMDataTreeWriteTransaction delegate; private final TracingBroker tracingBroker; private final List logs = new ArrayList<>(); - AbstractTracingWriteTransaction(DOMDataWriteTransaction delegate, TracingBroker tracingBroker) { - this.delegate = Objects.requireNonNull(delegate); - this.tracingBroker = Objects.requireNonNull(tracingBroker); + AbstractTracingWriteTransaction(DOMDataTreeWriteTransaction delegate, TracingBroker tracingBroker) { + this.delegate = requireNonNull(delegate); + this.tracingBroker = requireNonNull(tracingBroker); recordOp(null, null, "instantiate", null); } @@ -114,7 +114,6 @@ abstract class AbstractTracingWriteTransaction implements DOMDataWriteTransactio } @Override - @Nonnull public Object getIdentifier() { return delegate.getIdentifier(); } diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTracked.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTracked.java similarity index 86% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTracked.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTracked.java index ef42c4025c..2c8d6a3942 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTracked.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTracked.java @@ -5,9 +5,9 @@ * 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.closetracker.impl; +package org.opendaylight.mdsal.trace.impl; -import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.Nullable; /** * Object which can track where something has been created, and if it has been correctly "closed". @@ -16,7 +16,7 @@ import javax.annotation.Nullable; * * @author Michael Vorburger.ch */ -public interface CloseTracked> { +interface CloseTracked> { /** * This returns the allocation context as {@link StackTraceElement}s. NB that diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistry.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistry.java similarity index 97% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistry.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistry.java index 7f99824601..d501a31afb 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistry.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistry.java @@ -5,7 +5,7 @@ * 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.closetracker.impl; +package org.opendaylight.mdsal.trace.impl; import static java.util.Arrays.asList; import static java.util.Collections.emptyList; @@ -28,7 +28,7 @@ import javax.annotation.concurrent.ThreadSafe; * @author Michael Vorburger.ch */ @ThreadSafe -public class CloseTrackedRegistry> { +class CloseTrackedRegistry> { private final Object anchor; private final String createDescription; @@ -111,5 +111,4 @@ public class CloseTrackedRegistry> { new CloseTrackedRegistryReportEntry<>(exampleCloseTracked, number, stackTraceElements)))); return report; } - } diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistryReportEntry.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistryReportEntry.java similarity index 86% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistryReportEntry.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistryReportEntry.java index 2dd161a5ff..1c8c89bf15 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistryReportEntry.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistryReportEntry.java @@ -5,7 +5,7 @@ * 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.closetracker.impl; +package org.opendaylight.mdsal.trace.impl; import static java.util.Objects.requireNonNull; @@ -16,13 +16,12 @@ import java.util.List; * * @author Michael Vorburger.ch */ -public class CloseTrackedRegistryReportEntry> { - +class CloseTrackedRegistryReportEntry> { private final CloseTracked exampleCloseTracked; private final long numberAddedNotRemoved; private final List stackTraceElements; - public CloseTrackedRegistryReportEntry(CloseTracked exampleCloseTracked, long numberAddedNotRemoved, + CloseTrackedRegistryReportEntry(CloseTracked exampleCloseTracked, long numberAddedNotRemoved, List stackTraceElements) { this.exampleCloseTracked = requireNonNull(exampleCloseTracked, "closeTracked"); this.numberAddedNotRemoved = requireNonNull(numberAddedNotRemoved, "numberAddedNotRemoved"); @@ -46,6 +45,4 @@ public class CloseTrackedRegistryReportEntry> { return "CloseTrackedRegistryReportEntry [numberAddedNotRemoved=" + numberAddedNotRemoved + ", closeTracked=" + exampleCloseTracked + ", stackTraceElements.size=" + stackTraceElements.size() + "]"; } - - } diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedTrait.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTrackedTrait.java similarity index 77% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedTrait.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTrackedTrait.java index 30e81c42df..22311d0e4d 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedTrait.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/CloseTrackedTrait.java @@ -5,11 +5,12 @@ * 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.closetracker.impl; +package org.opendaylight.mdsal.trace.impl; + +import static java.util.Objects.requireNonNull; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import java.util.Objects; -import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.Nullable; /** * Implementation of {@link CloseTracked} which can be used as a field in @@ -21,7 +22,7 @@ import javax.annotation.Nullable; * * @author Michael Vorburger.ch */ -public class CloseTrackedTrait> implements CloseTracked { +class CloseTrackedTrait> implements CloseTracked { // NB: It's important that we keep a Throwable here, and not directly the StackTraceElement[] ! // This is because creating a new Throwable() is a lot less expensive in terms of runtime overhead @@ -31,7 +32,7 @@ public class CloseTrackedTrait> implements CloseTracke private final CloseTrackedRegistry closeTrackedRegistry; private final CloseTracked realCloseTracked; - public CloseTrackedTrait(CloseTrackedRegistry transactionChainRegistry, CloseTracked realCloseTracked) { + CloseTrackedTrait(CloseTrackedRegistry transactionChainRegistry, CloseTracked realCloseTracked) { if (transactionChainRegistry.isDebugContextEnabled()) { // NB: We're NOT doing the (expensive) getStackTrace() here just yet (only below) // TODO When we're on Java 9, then instead use the new java.lang.StackWalker API.. @@ -39,15 +40,14 @@ public class CloseTrackedTrait> implements CloseTracke } else { this.allocationContext = null; } - this.realCloseTracked = Objects.requireNonNull(realCloseTracked, "realCloseTracked"); - this.closeTrackedRegistry = Objects.requireNonNull(transactionChainRegistry, "transactionChainRegistry"); + this.realCloseTracked = requireNonNull(realCloseTracked, "realCloseTracked"); + this.closeTrackedRegistry = requireNonNull(transactionChainRegistry, "transactionChainRegistry"); this.closeTrackedRegistry.add(this); } @Override - @Nullable @SuppressFBWarnings("PZLA_PREFER_ZERO_LENGTH_ARRAYS") - public StackTraceElement[] getAllocationContextStackTrace() { + public @Nullable StackTraceElement[] getAllocationContextStackTrace() { return allocationContext != null ? allocationContext.getStackTrace() : null; } @@ -59,5 +59,4 @@ public class CloseTrackedTrait> implements CloseTracke public CloseTracked getRealCloseTracked() { return realCloseTracked; } - } diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingBroker.java similarity index 87% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingBroker.java index 7103a00768..5b02713a05 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingBroker.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingBroker.java @@ -5,35 +5,31 @@ * 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; +package org.opendaylight.mdsal.trace.impl; import static java.util.Objects.requireNonNull; +import com.google.common.collect.ClassToInstanceMap; +import com.google.common.collect.MutableClassToInstanceMap; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.PrintStream; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Set; -import javax.annotation.Nonnull; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener; -import org.opendaylight.controller.md.sal.dom.api.ClusteredDOMDataTreeChangeListener; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBrokerExtension; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener; -import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeService; -import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeIdentifier; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; -import org.opendaylight.controller.md.sal.trace.api.TracingDOMDataBroker; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTracked; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedRegistry; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedRegistryReportEntry; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; +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.DOMDataBrokerExtension; +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.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.dom.api.DOMTransactionChainListener; +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.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.DataObject; @@ -275,7 +271,7 @@ public class TracingBroker implements TracingDOMDataBroker { } } - private void reconstructIidPathString(YangInstanceIdentifier yiid, StringBuilder sb) { + private static void reconstructIidPathString(YangInstanceIdentifier yiid, StringBuilder sb) { sb.append(""); for (YangInstanceIdentifier.PathArgument pathArg : yiid.getPathArguments()) { if (pathArg instanceof YangInstanceIdentifier.AugmentationIdentifier) { @@ -299,42 +295,39 @@ public class TracingBroker implements TracingDOMDataBroker { } @Override - public DOMDataReadWriteTransaction newReadWriteTransaction() { + public DOMDataTreeReadWriteTransaction newReadWriteTransaction() { return new TracingReadWriteTransaction(delegate.newReadWriteTransaction(), this, readWriteTransactionsRegistry); } @Override - public DOMDataWriteTransaction newWriteOnlyTransaction() { + public DOMDataTreeWriteTransaction newWriteOnlyTransaction() { return new TracingWriteTransaction(delegate.newWriteOnlyTransaction(), this, writeTransactionsRegistry); } @Override - public DOMTransactionChain createTransactionChain(TransactionChainListener transactionChainListener) { - return new TracingTransactionChain( - delegate.createTransactionChain(transactionChainListener), this, transactionChainsRegistry); + public DOMTransactionChain createTransactionChain(DOMTransactionChainListener transactionChainListener) { + return new TracingTransactionChain(delegate.createTransactionChain(transactionChainListener), this, + transactionChainsRegistry); } @Override - public DOMDataReadOnlyTransaction newReadOnlyTransaction() { + public DOMDataTreeReadTransaction newReadOnlyTransaction() { return new TracingReadOnlyTransaction(delegate.newReadOnlyTransaction(), readOnlyTransactionsRegistry); } - @Nonnull @Override - public Map, DOMDataBrokerExtension> getSupportedExtensions() { - Map, DOMDataBrokerExtension> res = delegate.getSupportedExtensions(); - DOMDataTreeChangeService treeChangeSvc = (DOMDataTreeChangeService) res.get(DOMDataTreeChangeService.class); + public ClassToInstanceMap getExtensions() { + final ClassToInstanceMap delegateExt = delegate.getExtensions(); + final DOMDataTreeChangeService treeChangeSvc = delegateExt.getInstance(DOMDataTreeChangeService.class); if (treeChangeSvc == null) { - return res; + return delegateExt; } - res = new HashMap<>(res); - + final ClassToInstanceMap res = MutableClassToInstanceMap.create(delegateExt); res.put(DOMDataTreeChangeService.class, new DOMDataTreeChangeService() { - @Nonnull @Override public ListenerRegistration registerDataTreeChangeListener( - @Nonnull DOMDataTreeIdentifier domDataTreeIdentifier, @Nonnull L listener) { + DOMDataTreeIdentifier domDataTreeIdentifier, L listener) { if (isRegistrationWatched(domDataTreeIdentifier.getRootIdentifier(), domDataTreeIdentifier.getDatastoreType())) { LOG.warn("{} registration (registerDataTreeChangeListener) for {} from {}.", diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadOnlyTransaction.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingReadOnlyTransaction.java similarity index 54% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadOnlyTransaction.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingReadOnlyTransaction.java index 56e8d90680..277f10ddf2 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadOnlyTransaction.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingReadOnlyTransaction.java @@ -5,38 +5,35 @@ * 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; +package org.opendaylight.mdsal.trace.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.controller.md.sal.trace.closetracker.impl.AbstractCloseTracked; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedRegistry; +import static java.util.Objects.requireNonNull; + +import com.google.common.util.concurrent.FluentFuture; +import java.util.Optional; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -class TracingReadOnlyTransaction - extends AbstractCloseTracked - implements DOMDataReadOnlyTransaction { +class TracingReadOnlyTransaction extends AbstractCloseTracked + implements DOMDataTreeReadTransaction { - private final DOMDataReadOnlyTransaction delegate; + private final DOMDataTreeReadTransaction delegate; - TracingReadOnlyTransaction(DOMDataReadOnlyTransaction delegate, + TracingReadOnlyTransaction(DOMDataTreeReadTransaction delegate, CloseTrackedRegistry readOnlyTransactionsRegistry) { super(readOnlyTransactionsRegistry); - this.delegate = delegate; + this.delegate = requireNonNull(delegate); } @Override - public CheckedFuture>, ReadFailedException> read(LogicalDatastoreType store, - YangInstanceIdentifier path) { + public FluentFuture>> read(LogicalDatastoreType store, YangInstanceIdentifier path) { return delegate.read(store, path); } @Override - public CheckedFuture exists(LogicalDatastoreType store, YangInstanceIdentifier path) { + public FluentFuture exists(LogicalDatastoreType store, YangInstanceIdentifier path) { return delegate.exists(store, path); } @@ -51,7 +48,6 @@ class TracingReadOnlyTransaction super.removeFromTrackedRegistry(); } - // https://jira.opendaylight.org/browse/CONTROLLER-1792 @Override @@ -68,5 +64,4 @@ class TracingReadOnlyTransaction public final String toString() { return getClass().getName() + "; delegate=" + delegate; } - } diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingReadWriteTransaction.java similarity index 53% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingReadWriteTransaction.java index 82c1a3b9dc..470a9799c3 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingReadWriteTransaction.java @@ -5,44 +5,40 @@ * 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; +package org.opendaylight.mdsal.trace.impl; + +import static java.util.Objects.requireNonNull; -import com.google.common.base.Optional; -import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.FluentFuture; -import java.util.Objects; -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.DOMDataReadWriteTransaction; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTracked; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedRegistry; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedTrait; +import java.util.Optional; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; class TracingReadWriteTransaction extends AbstractTracingWriteTransaction - implements DOMDataReadWriteTransaction, CloseTracked { + implements DOMDataTreeReadWriteTransaction, CloseTracked { private final CloseTrackedTrait closeTracker; - private final DOMDataReadWriteTransaction delegate; + private final DOMDataTreeReadWriteTransaction delegate; - TracingReadWriteTransaction(DOMDataReadWriteTransaction delegate, TracingBroker tracingBroker, + TracingReadWriteTransaction(DOMDataTreeReadWriteTransaction delegate, TracingBroker tracingBroker, CloseTrackedRegistry readWriteTransactionsRegistry) { super(delegate, tracingBroker); this.closeTracker = new CloseTrackedTrait<>(readWriteTransactionsRegistry, this); - this.delegate = Objects.requireNonNull(delegate); + this.delegate = requireNonNull(delegate); } @Override - public CheckedFuture>, ReadFailedException> read( - LogicalDatastoreType store, YangInstanceIdentifier yiid) { + public FluentFuture>> read(LogicalDatastoreType store, YangInstanceIdentifier yiid) { return delegate.read(store, yiid); } @Override - public CheckedFuture exists(LogicalDatastoreType store, YangInstanceIdentifier yiid) { + public FluentFuture exists(LogicalDatastoreType store, YangInstanceIdentifier yiid) { return delegate.exists(store, yiid); } @@ -59,7 +55,7 @@ class TracingReadWriteTransaction } @Override - public StackTraceElement[] getAllocationContextStackTrace() { + public @Nullable StackTraceElement[] getAllocationContextStackTrace() { return closeTracker.getAllocationContextStackTrace(); } diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingTransactionChain.java b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingTransactionChain.java similarity index 74% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingTransactionChain.java rename to trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingTransactionChain.java index 2e5070f551..fb6728b66f 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingTransactionChain.java +++ b/trace/mdsal-trace-impl/src/main/java/org/opendaylight/mdsal/trace/impl/TracingTransactionChain.java @@ -5,15 +5,14 @@ * 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; +package org.opendaylight.mdsal.trace.impl; -import java.util.Objects; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.AbstractCloseTracked; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedRegistry; +import static java.util.Objects.requireNonNull; + +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; class TracingTransactionChain extends AbstractCloseTracked implements DOMTransactionChain { @@ -26,8 +25,8 @@ class TracingTransactionChain extends AbstractCloseTracked transactionChainsRegistry) { super(transactionChainsRegistry); - this.delegate = Objects.requireNonNull(delegate); - this.tracingBroker = Objects.requireNonNull(tracingBroker); + this.delegate = requireNonNull(delegate); + this.tracingBroker = requireNonNull(tracingBroker); final boolean isDebug = transactionChainsRegistry.isDebugContextEnabled(); String anchor = "TransactionChain@" + Integer.toHexString(hashCode()); @@ -38,20 +37,20 @@ class TracingTransactionChain extends AbstractCloseTracked - + @@ -34,18 +34,18 @@ and is available at http://www.eclipse.org/legal/epl-v10.html - org.opendaylight.controller.md.sal.dom.api.DOMDataBroker - org.opendaylight.controller.md.sal.trace.api.TracingDOMDataBroker + org.opendaylight.mdsal.dom.api.DOMDataBroker + org.opendaylight.mdsal.trace.api.TracingDOMDataBroker - + @@ -54,8 +54,8 @@ and is available at http://www.eclipse.org/legal/epl-v10.html - org.opendaylight.controller.md.sal.dom.api.DOMDataBroker - org.opendaylight.controller.md.sal.trace.api.TracingDOMDataBroker + org.opendaylight.mdsal.dom.api.DOMDataBroker + org.opendaylight.mdsal.trace.api.TracingDOMDataBroker diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/CloseTrackedRegistryTest.java b/trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistryTest.java similarity index 92% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/CloseTrackedRegistryTest.java rename to trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistryTest.java index c91080ceef..e78bcecda6 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/CloseTrackedRegistryTest.java +++ b/trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/impl/CloseTrackedRegistryTest.java @@ -5,7 +5,7 @@ * 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.tests; +package org.opendaylight.mdsal.trace.impl; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; @@ -13,9 +13,6 @@ import static org.junit.Assert.fail; import java.util.Set; import java.util.function.Predicate; import org.junit.Test; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.AbstractCloseTracked; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedRegistry; -import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedRegistryReportEntry; public class CloseTrackedRegistryTest { diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/TracingBrokerTest.java b/trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/test/TracingBrokerTest.java similarity index 80% rename from opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/TracingBrokerTest.java rename to trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/test/TracingBrokerTest.java index 4e24c7d892..cfacce8534 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/test/java/org/opendaylight/controller/md/sal/trace/tests/TracingBrokerTest.java +++ b/trace/mdsal-trace-impl/src/test/java/org/opendaylight/mdsal/trace/test/TracingBrokerTest.java @@ -5,7 +5,7 @@ * 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.tests; +package org.opendaylight.mdsal.trace.test; import static com.google.common.truth.Truth.assertThat; import static java.nio.charset.StandardCharsets.UTF_8; @@ -15,16 +15,17 @@ import static org.mockito.Mockito.mock; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.Test; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; -import org.opendaylight.controller.md.sal.trace.dom.impl.TracingBroker; import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer; +import org.opendaylight.mdsal.dom.api.DOMDataBroker; +import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction; +import org.opendaylight.mdsal.dom.api.DOMTransactionChain; +import org.opendaylight.mdsal.trace.impl.TracingBroker; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsaltrace.rev160908.Config; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.mdsaltrace.rev160908.ConfigBuilder; /** - * Test of {@link TracingBroker}. + * Test of {@link TracingBroker}. This test resides outside of org.opendaylight.mdsal.trace.impl package on purpose, + * as the package name is used to suppress stack entries. * * @author Michael Vorburger.ch */ @@ -39,12 +40,12 @@ public class TracingBrokerTest { TracingBroker tracingBroker = new TracingBroker("mock", domDataBroker, config, codec); for (int i = 0; i < 3; i++) { - DOMDataReadWriteTransaction tx = tracingBroker.newReadWriteTransaction(); + DOMDataTreeReadWriteTransaction tx = tracingBroker.newReadWriteTransaction(); } - DOMDataReadWriteTransaction anotherTx = tracingBroker.newReadWriteTransaction(); + DOMDataTreeReadWriteTransaction anotherTx = tracingBroker.newReadWriteTransaction(); DOMTransactionChain txChain = tracingBroker.createTransactionChain(null); - DOMDataReadWriteTransaction txFromChain = txChain.newReadWriteTransaction(); + DOMDataTreeReadWriteTransaction txFromChain = txChain.newReadWriteTransaction(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(baos); diff --git a/trace/pom.xml b/trace/pom.xml new file mode 100644 index 0000000000..3881efc645 --- /dev/null +++ b/trace/pom.xml @@ -0,0 +1,35 @@ + + + + 4.0.0 + + org.opendaylight.odlparent + odlparent-lite + 4.0.7 + + + + org.opendaylight.mdsal + trace-aggregator + 1.0.4-SNAPSHOT + pom + ${project.artifactId} + ${project.artifactId} + + + mdsal-trace-api + mdsal-trace-cli + mdsal-trace-impl + + + + + true + true + + -- 2.36.6