X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardDataTreeTransactionChain.java;h=9a8e89eb422c4b4f909e6a6c3ea97366d1ab01f2;hb=32b322afd58f120a78208c939a01422aa224d0cf;hp=eefebb6af8f6c65638cee9d6e19d965e9a58e0d4;hpb=4d1709660b7af992d4c382a2a38debb5c7d64fb9;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java index eefebb6af8..9a8e89eb42 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTransactionChain.java @@ -12,6 +12,8 @@ import com.google.common.base.Preconditions; import javax.annotation.concurrent.NotThreadSafe; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.yangtools.concepts.Identifiable; +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,18 +22,19 @@ import org.slf4j.LoggerFactory; * A transaction chain attached to a Shard. */ @NotThreadSafe -final class ShardDataTreeTransactionChain extends ShardDataTreeTransactionParent { +final class ShardDataTreeTransactionChain extends ShardDataTreeTransactionParent + implements Identifiable { private static final Logger LOG = LoggerFactory.getLogger(ShardDataTreeTransactionChain.class); - private final ShardDataTree dataTree; private final LocalHistoryIdentifier chainId; + private final ShardDataTree dataTree; private ReadWriteShardDataTreeTransaction previousTx; private ReadWriteShardDataTreeTransaction openTransaction; private boolean closed; ShardDataTreeTransactionChain(final LocalHistoryIdentifier localHistoryIdentifier, final ShardDataTree dataTree) { - this.dataTree = Preconditions.checkNotNull(dataTree); this.chainId = Preconditions.checkNotNull(localHistoryIdentifier); + this.dataTree = Preconditions.checkNotNull(dataTree); } private DataTreeSnapshot getSnapshot() { @@ -67,7 +70,8 @@ final class ShardDataTreeTransactionChain extends ShardDataTreeTransactionParent @Override protected void abortTransaction(final AbstractShardDataTreeTransaction transaction) { if (transaction instanceof ReadWriteShardDataTreeTransaction) { - Preconditions.checkState(openTransaction != null, "Attempted to abort transaction %s while none is outstanding", transaction); + Preconditions.checkState(openTransaction != null, + "Attempted to abort transaction %s while none is outstanding", transaction); LOG.debug("Aborted transaction {}", transaction); openTransaction = null; } @@ -75,7 +79,8 @@ final class ShardDataTreeTransactionChain extends ShardDataTreeTransactionParent @Override protected ShardDataTreeCohort finishTransaction(final ReadWriteShardDataTreeTransaction transaction) { - Preconditions.checkState(openTransaction != null, "Attempted to finish transaction %s while none is outstanding", transaction); + Preconditions.checkState(openTransaction != null, + "Attempted to finish transaction %s while none is outstanding", transaction); // dataTree is finalizing ready the transaction, we just record it for the next // transaction in chain @@ -92,9 +97,19 @@ final class ShardDataTreeTransactionChain extends ShardDataTreeTransactionParent return MoreObjects.toStringHelper(this).add("id", chainId).toString(); } - void clearTransaction(ReadWriteShardDataTreeTransaction transaction) { + void clearTransaction(final ReadWriteShardDataTreeTransaction transaction) { if (transaction.equals(previousTx)) { previousTx = null; } } + + @Override + public LocalHistoryIdentifier getIdentifier() { + return chainId; + } + + @Override + ShardDataTreeCohort createReadyCohort(final TransactionIdentifier txId, final DataTreeModification modification) { + return dataTree.createReadyCohort(txId, modification); + } }