X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fstore%2Finmemory%2FInMemoryDOMDataStore.java;h=42f141960b05c9329d91e4e4621c7a8ab564f6f6;hb=b8a896e6dfc47374f99efee157683dc8a7ef8860;hp=aa36a99ccae4bdd99cced2d645022defae63ddc3;hpb=c9fac55958e5492dd7e5ae387e8d6d50e78c2fd1;p=mdsal.git diff --git a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataStore.java b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataStore.java index aa36a99cca..42f141960b 100644 --- a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataStore.java +++ b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/InMemoryDOMDataStore.java @@ -12,6 +12,7 @@ import static java.util.Objects.requireNonNull; import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; import org.opendaylight.mdsal.dom.spi.store.DOMStore; @@ -25,19 +26,17 @@ import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedTransactions; import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction; import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.TransactionReadyPrototype; import org.opendaylight.yangtools.concepts.Identifiable; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.util.ExecutorServiceUtil; -import org.opendaylight.yangtools.util.concurrent.EqualityQueuedNotificationManager; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,7 +46,7 @@ import org.slf4j.LoggerFactory; * {@link org.opendaylight.mdsal.dom.spi.store.SnapshotBackedReadTransaction} to implement {@link DOMStore} contract. */ public class InMemoryDOMDataStore extends TransactionReadyPrototype implements DOMStore, - Identifiable, EffectiveModelContextListener, AutoCloseable, DOMStoreTreeChangePublisher { + Identifiable, AutoCloseable, DOMStoreTreeChangePublisher { private static final Logger LOG = LoggerFactory.getLogger(InMemoryDOMDataStore.class); private final AtomicLong txCounter = new AtomicLong(0); @@ -56,7 +55,7 @@ public class InMemoryDOMDataStore extends TransactionReadyPrototype impl private final InMemoryDOMStoreTreeChangePublisher changePublisher; private final ExecutorService dataChangeListenerExecutor; private final boolean debugTransactions; - private final String name; + private final @NonNull String name; private volatile AutoCloseable closeable; @@ -88,10 +87,6 @@ public class InMemoryDOMDataStore extends TransactionReadyPrototype impl maxDataChangeListenerQueueSize); } - public EqualityQueuedNotificationManager getDataChangeListenerNotificationManager() { - return changePublisher.getNotificationManager(); - } - public void setCloseable(final AutoCloseable closeable) { this.closeable = closeable; } @@ -101,6 +96,10 @@ public class InMemoryDOMDataStore extends TransactionReadyPrototype impl return name; } + public final synchronized void onModelContextUpdated(final EffectiveModelContext newModelContext) { + dataTree.setEffectiveModelContext(newModelContext); + } + @Override public DOMStoreReadTransaction newReadOnlyTransaction() { return SnapshotBackedTransactions.newReadTransaction(nextIdentifier(), debugTransactions, @@ -124,11 +123,6 @@ public class InMemoryDOMDataStore extends TransactionReadyPrototype impl return new DOMStoreTransactionChainImpl(this); } - @Override - public synchronized void onModelContextUpdated(final EffectiveModelContext newModelContext) { - dataTree.setEffectiveModelContext(newModelContext); - } - @SuppressWarnings("checkstyle:IllegalCatch") @Override public void close() { @@ -152,15 +146,20 @@ public class InMemoryDOMDataStore extends TransactionReadyPrototype impl } @Override - public synchronized ListenerRegistration registerTreeChangeListener( - final YangInstanceIdentifier treeId, final L listener) { - /* - * Make sure commit is not occurring right now. Listener has to be - * registered and its state capture enqueued at a consistent point. - */ + public synchronized Registration registerTreeChangeListener(final YangInstanceIdentifier treeId, + final DOMDataTreeChangeListener listener) { + // Make sure commit is not occurring right now. Listener has to be registered and its state capture enqueued at + // a consistent point. return changePublisher.registerTreeChangeListener(treeId, listener, dataTree.takeSnapshot()); } + @Override + @Deprecated(since = "13.0.0", forRemoval = true) + public Registration registerLegacyTreeChangeListener(final YangInstanceIdentifier treeId, + final DOMDataTreeChangeListener listener) { + return registerTreeChangeListener(treeId, listener); + } + @Override protected void transactionAborted(final SnapshotBackedWriteTransaction tx) { LOG.debug("Tx: {} is closed.", tx.getIdentifier()); @@ -191,13 +190,9 @@ public class InMemoryDOMDataStore extends TransactionReadyPrototype impl } private static DataTreeConfiguration defaultConfig(final LogicalDatastoreType type) { - switch (type) { - case CONFIGURATION: - return DataTreeConfiguration.DEFAULT_CONFIGURATION; - case OPERATIONAL: - return DataTreeConfiguration.DEFAULT_OPERATIONAL; - default: - throw new IllegalArgumentException("Unhandled datastore type " + type); - } + return switch (type) { + case CONFIGURATION -> DataTreeConfiguration.DEFAULT_CONFIGURATION; + case OPERATIONAL -> DataTreeConfiguration.DEFAULT_OPERATIONAL; + }; } }