From 401577076374485afea34caeb33bce474563f752 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 27 Apr 2018 14:29:21 +0200 Subject: [PATCH] Add sal-dom-compat This is a compatibility layer, implementing Controller DOM APIs on top of MDSAL DOM APIs. Change-Id: I72feb9ea7f55db97ecd4552f08860ce9360dc61a Signed-off-by: Robert Varga --- opendaylight/md-sal/mdsal-artifacts/pom.xml | 5 ++ opendaylight/md-sal/pom.xml | 1 + ...faultShardDataChangeListenerPublisher.java | 4 +- opendaylight/md-sal/sal-dom-compat/pom.xml | 34 ++++++++++ .../sal/core/compat/DOMStoreAdapter.java | 68 +++++++++++++++++++ .../DOMStoreReadTransactionAdapter.java | 64 +++++++++++++++++ .../DOMStoreReadWriteTransactionAdapter.java | 42 ++++++++++++ ...DOMStoreThreePhaseCommitCohortAdapter.java | 48 +++++++++++++ .../DOMStoreTransactionChainAdapter.java | 50 ++++++++++++++ .../DOMStoreWriteTransactionAdapter.java | 60 ++++++++++++++++ .../DataChangeListenerRegistration.java | 2 +- .../DataChangeListenerRegistrationImpl.java | 3 +- .../sal/core/compat}/ListenerTree.java | 3 +- .../sal/core/compat/package-info.java | 12 ++++ .../md-sal/sal-inmemory-datastore/pom.xml | 6 +- .../dom/store/impl/InMemoryDOMDataStore.java | 3 +- .../impl/ResolveDataChangeEventsTask.java | 3 +- .../store/impl/ResolveDataChangeState.java | 1 + 18 files changed, 395 insertions(+), 14 deletions(-) create mode 100644 opendaylight/md-sal/sal-dom-compat/pom.xml create mode 100644 opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreAdapter.java create mode 100644 opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreReadTransactionAdapter.java create mode 100644 opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreReadWriteTransactionAdapter.java create mode 100644 opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreThreePhaseCommitCohortAdapter.java create mode 100644 opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreTransactionChainAdapter.java create mode 100644 opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreWriteTransactionAdapter.java rename opendaylight/md-sal/{sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl => sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat}/DataChangeListenerRegistration.java (94%) rename opendaylight/md-sal/{sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree => sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat}/DataChangeListenerRegistrationImpl.java (85%) rename opendaylight/md-sal/{sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree => sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat}/ListenerTree.java (95%) create mode 100644 opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/package-info.java diff --git a/opendaylight/md-sal/mdsal-artifacts/pom.xml b/opendaylight/md-sal/mdsal-artifacts/pom.xml index cd2106633a..94e123973c 100644 --- a/opendaylight/md-sal/mdsal-artifacts/pom.xml +++ b/opendaylight/md-sal/mdsal-artifacts/pom.xml @@ -51,6 +51,11 @@ sal-core-spi ${project.version} + + ${project.groupId} + sal-core-compat + ${project.version} + ${project.groupId} sal-broker-impl diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index f74709af4e..dd404d945c 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -27,6 +27,7 @@ sal-dom-api sal-dom-broker sal-dom-spi + sal-dom-compat sal-schema-service diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataChangeListenerPublisher.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataChangeListenerPublisher.java index 6d581f875f..c745c1bc79 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataChangeListenerPublisher.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataChangeListenerPublisher.java @@ -13,9 +13,9 @@ import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; import org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent; -import org.opendaylight.controller.md.sal.dom.store.impl.DataChangeListenerRegistration; import org.opendaylight.controller.md.sal.dom.store.impl.ResolveDataChangeEventsTask; -import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree; +import org.opendaylight.controller.sal.core.compat.DataChangeListenerRegistration; +import org.opendaylight.controller.sal.core.compat.ListenerTree; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.util.concurrent.NotificationManager; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; diff --git a/opendaylight/md-sal/sal-dom-compat/pom.xml b/opendaylight/md-sal/sal-dom-compat/pom.xml new file mode 100644 index 0000000000..6f94368697 --- /dev/null +++ b/opendaylight/md-sal/sal-dom-compat/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + org.opendaylight.controller + mdsal-parent + 1.8.0-SNAPSHOT + ../parent + + + org.opendaylight.controller + sal-core-compat + 1.8.0-SNAPSHOT + bundle + + + + org.opendaylight.controller + sal-core-spi + + + org.opendaylight.mdsal + mdsal-dom-spi + + + + + scm:git:http://git.opendaylight.org/gerrit/controller.git + scm:git:ssh://git.opendaylight.org:29418/controller.git + HEAD + https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL + + + diff --git a/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreAdapter.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreAdapter.java new file mode 100644 index 0000000000..b360663f84 --- /dev/null +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreAdapter.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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.sal.core.compat; + +import com.google.common.collect.ForwardingObject; +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; +import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener; +import org.opendaylight.controller.sal.core.spi.data.DOMStore; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadWriteTransaction; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransactionChain; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreTreeChangePublisher; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction; +import org.opendaylight.yangtools.concepts.AbstractListenerRegistration; +import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +public abstract class DOMStoreAdapter extends ForwardingObject + implements DOMStore, DOMStoreTreeChangePublisher { + @Override + protected abstract T delegate(); + + @Override + public DOMStoreReadTransaction newReadOnlyTransaction() { + return new DOMStoreReadTransactionAdapter<>(delegate().newReadOnlyTransaction()); + } + + @Override + public DOMStoreReadWriteTransaction newReadWriteTransaction() { + return new DOMStoreReadWriteTransactionAdapter(delegate().newReadWriteTransaction()); + } + + @Override + public DOMStoreWriteTransaction newWriteOnlyTransaction() { + return new DOMStoreWriteTransactionAdapter(delegate().newWriteOnlyTransaction()); + } + + @Override + public DOMStoreTransactionChain createTransactionChain() { + return new DOMStoreTransactionChainAdapter(delegate().createTransactionChain()); + } + + @Override + public >> ListenerRegistration + registerChangeListener(final YangInstanceIdentifier path, final L listener, final DataChangeScope scope) { + throw new UnsupportedOperationException(); + } + + @Override + public ListenerRegistration registerTreeChangeListener( + final YangInstanceIdentifier treeId, final L listener) { + final ListenerRegistration reg = delegate().registerTreeChangeListener(treeId, listener::onDataTreeChanged); + return new AbstractListenerRegistration(listener) { + @Override + protected void removeRegistration() { + reg.close(); + } + }; + } +} diff --git a/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreReadTransactionAdapter.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreReadTransactionAdapter.java new file mode 100644 index 0000000000..a7628de5c9 --- /dev/null +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreReadTransactionAdapter.java @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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.sal.core.compat; + +import static java.util.Objects.requireNonNull; + +import com.google.common.collect.ForwardingObject; +import com.google.common.util.concurrent.CheckedFuture; +import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction; +import org.opendaylight.mdsal.common.api.MappingCheckedFuture; +import org.opendaylight.yangtools.util.concurrent.ExceptionMapper; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +public class DOMStoreReadTransactionAdapter + extends ForwardingObject implements DOMStoreReadTransaction { + public static final ExceptionMapper READ_EX_MAPPER = + new ExceptionMapper("read", ReadFailedException.class) { + @Override + protected ReadFailedException newWithCause(final String message, final Throwable cause) { + return cause instanceof org.opendaylight.mdsal.common.api.ReadFailedException + ? new ReadFailedException(cause.getMessage(), cause.getCause()) + : new ReadFailedException(message, cause); + } + }; + + private final T delegate; + + public DOMStoreReadTransactionAdapter(final T delegate) { + this.delegate = requireNonNull(delegate); + } + + @Override + protected T delegate() { + return delegate; + } + + @Override + public Object getIdentifier() { + return delegate.getIdentifier(); + } + + @Override + public void close() { + delegate.close(); + } + + @Override + public CheckedFuture>, ReadFailedException> read( + final YangInstanceIdentifier path) { + return MappingCheckedFuture.create(delegate.read(path), READ_EX_MAPPER); + } + + @Override + public CheckedFuture exists(final YangInstanceIdentifier path) { + return MappingCheckedFuture.create(delegate.exists(path), READ_EX_MAPPER); + } +} diff --git a/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreReadWriteTransactionAdapter.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreReadWriteTransactionAdapter.java new file mode 100644 index 0000000000..0a6ee9669a --- /dev/null +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreReadWriteTransactionAdapter.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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.sal.core.compat; + +import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadWriteTransaction; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +public class DOMStoreReadWriteTransactionAdapter + extends DOMStoreReadTransactionAdapter + implements DOMStoreReadWriteTransaction { + public DOMStoreReadWriteTransactionAdapter( + final org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction delegate) { + super(delegate); + } + + @Override + public void write(final YangInstanceIdentifier path, final NormalizedNode data) { + delegate().write(path, data); + } + + @Override + public DOMStoreThreePhaseCommitCohort ready() { + return new DOMStoreThreePhaseCommitCohortAdapter(delegate().ready()); + } + + @Override + public void merge(final YangInstanceIdentifier path, final NormalizedNode data) { + delegate().merge(path, data); + } + + @Override + public void delete(final YangInstanceIdentifier path) { + delegate().delete(path); + } +} \ No newline at end of file diff --git a/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreThreePhaseCommitCohortAdapter.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreThreePhaseCommitCohortAdapter.java new file mode 100644 index 0000000000..2a59b33f4e --- /dev/null +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreThreePhaseCommitCohortAdapter.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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.sal.core.compat; + +import static java.util.Objects.requireNonNull; + +import com.google.common.collect.ForwardingObject; +import com.google.common.util.concurrent.ListenableFuture; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort; + +public class DOMStoreThreePhaseCommitCohortAdapter extends ForwardingObject implements DOMStoreThreePhaseCommitCohort { + private final org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort delegate; + + public DOMStoreThreePhaseCommitCohortAdapter( + final org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort delegate) { + this.delegate = requireNonNull(delegate); + } + + @Override + protected org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort delegate() { + return delegate; + } + + @Override + public ListenableFuture preCommit() { + return delegate.preCommit(); + } + + @Override + public ListenableFuture commit() { + return delegate.commit(); + } + + @Override + public ListenableFuture canCommit() { + return delegate.canCommit(); + } + + @Override + public ListenableFuture abort() { + return delegate.abort(); + } +} diff --git a/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreTransactionChainAdapter.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreTransactionChainAdapter.java new file mode 100644 index 0000000000..84ff08afd6 --- /dev/null +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreTransactionChainAdapter.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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.sal.core.compat; + +import static java.util.Objects.requireNonNull; + +import com.google.common.collect.ForwardingObject; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadWriteTransaction; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransactionChain; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction; + +public class DOMStoreTransactionChainAdapter extends ForwardingObject implements DOMStoreTransactionChain { + private final org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain delegate; + + public DOMStoreTransactionChainAdapter( + final org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain delegate) { + this.delegate = requireNonNull(delegate); + } + + @Override + protected org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain delegate() { + return delegate; + } + + @Override + public DOMStoreWriteTransaction newWriteOnlyTransaction() { + return new DOMStoreWriteTransactionAdapter(delegate.newWriteOnlyTransaction()); + } + + @Override + public DOMStoreReadWriteTransaction newReadWriteTransaction() { + return new DOMStoreReadWriteTransactionAdapter(delegate.newReadWriteTransaction()); + } + + @Override + public DOMStoreReadTransaction newReadOnlyTransaction() { + return new DOMStoreReadTransactionAdapter<>(delegate.newReadOnlyTransaction()); + } + + @Override + public void close() { + delegate.close(); + } +} diff --git a/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreWriteTransactionAdapter.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreWriteTransactionAdapter.java new file mode 100644 index 0000000000..e51febe98e --- /dev/null +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DOMStoreWriteTransactionAdapter.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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.sal.core.compat; + +import static java.util.Objects.requireNonNull; + +import com.google.common.collect.ForwardingObject; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +public class DOMStoreWriteTransactionAdapter extends ForwardingObject implements DOMStoreWriteTransaction { + private final org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction delegate; + + public DOMStoreWriteTransactionAdapter( + final org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction delegate) { + this.delegate = requireNonNull(delegate); + } + + @Override + protected org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction delegate() { + return delegate; + } + + @Override + public Object getIdentifier() { + return delegate.getIdentifier(); + } + + @Override + public void close() { + delegate.close(); + } + + @Override + public void write(final YangInstanceIdentifier path, final NormalizedNode data) { + delegate.write(path, data); + } + + @Override + public DOMStoreThreePhaseCommitCohort ready() { + return new DOMStoreThreePhaseCommitCohortAdapter(delegate.ready()); + } + + @Override + public void merge(final YangInstanceIdentifier path, final NormalizedNode data) { + delegate.merge(path, data); + } + + @Override + public void delete(final YangInstanceIdentifier path) { + delegate.delete(path); + } +} \ No newline at end of file diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DataChangeListenerRegistration.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DataChangeListenerRegistration.java similarity index 94% rename from opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DataChangeListenerRegistration.java rename to opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DataChangeListenerRegistration.java index 7e8ee187e5..7538138685 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/DataChangeListenerRegistration.java +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DataChangeListenerRegistration.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.dom.store.impl; +package org.opendaylight.controller.sal.core.compat; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/DataChangeListenerRegistrationImpl.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DataChangeListenerRegistrationImpl.java similarity index 85% rename from opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/DataChangeListenerRegistrationImpl.java rename to opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DataChangeListenerRegistrationImpl.java index 55b4ad2de4..7f8c1309bb 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/DataChangeListenerRegistrationImpl.java +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/DataChangeListenerRegistrationImpl.java @@ -5,10 +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.dom.store.impl.tree; +package org.opendaylight.controller.sal.core.compat; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; -import org.opendaylight.controller.md.sal.dom.store.impl.DataChangeListenerRegistration; import org.opendaylight.yangtools.concepts.AbstractListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/ListenerTree.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/ListenerTree.java similarity index 95% rename from opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/ListenerTree.java rename to opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/ListenerTree.java index a67040e929..c0d6861598 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/ListenerTree.java +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/ListenerTree.java @@ -5,11 +5,10 @@ * 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.dom.store.impl.tree; +package org.opendaylight.controller.sal.core.compat; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; -import org.opendaylight.controller.md.sal.dom.store.impl.DataChangeListenerRegistration; import org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree; import org.opendaylight.mdsal.dom.spi.RegistrationTreeNode; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; diff --git a/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/package-info.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/package-info.java new file mode 100644 index 0000000000..d6021f7aa0 --- /dev/null +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/package-info.java @@ -0,0 +1,12 @@ +/* + * Copyright (c) 2018 Pantheon Technologies, s.r.o. 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 + */ +/** + * Controller/MDSAL compatibility library. Contains classes useful for bridging Controller's sal-core-{api,spi} + * to MD-SAL's mdsal-dom-{api,spi}. + */ +package org.opendaylight.controller.sal.core.compat; \ No newline at end of file diff --git a/opendaylight/md-sal/sal-inmemory-datastore/pom.xml b/opendaylight/md-sal/sal-inmemory-datastore/pom.xml index 8312c233fa..917ea4faf2 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/pom.xml +++ b/opendaylight/md-sal/sal-inmemory-datastore/pom.xml @@ -32,11 +32,7 @@ org.opendaylight.controller - sal-core-api - - - org.opendaylight.controller - sal-core-spi + sal-core-compat diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java index f18bcfd788..7476d4c1c4 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java @@ -16,7 +16,8 @@ import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataCh import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeListener; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener; -import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree; +import org.opendaylight.controller.sal.core.compat.DataChangeListenerRegistration; +import org.opendaylight.controller.sal.core.compat.ListenerTree; import org.opendaylight.controller.sal.core.spi.data.DOMStore; import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction; import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadWriteTransaction; diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java index 22654d0ea9..2e45150bb3 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeEventsTask.java @@ -17,7 +17,8 @@ import java.util.Optional; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.Builder; import org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.SimpleEventFactory; -import org.opendaylight.controller.md.sal.dom.store.impl.tree.ListenerTree; +import org.opendaylight.controller.sal.core.compat.DataChangeListenerRegistration; +import org.opendaylight.controller.sal.core.compat.ListenerTree; import org.opendaylight.mdsal.dom.spi.RegistrationTreeSnapshot; import org.opendaylight.yangtools.util.concurrent.NotificationManager; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeState.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeState.java index a644dca91d..c9a842070f 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeState.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeState.java @@ -19,6 +19,7 @@ import java.util.Map; import java.util.Map.Entry; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.dom.store.impl.DOMImmutableDataChangeEvent.Builder; +import org.opendaylight.controller.sal.core.compat.DataChangeListenerRegistration; import org.opendaylight.mdsal.dom.spi.RegistrationTreeNode; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; -- 2.36.6