X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FChainedCommitCohort.java;h=1f87fd4259e1ae0e90bade6c153672eedf4ed6b4;hp=4b471cfa4ad9304fb604221e641f549c77287b55;hb=b65e66f7b1bafb0d0c5fbe1c569835eb890f672a;hpb=559c2b6afa7714572e01b52029acaa4d5a7315e2 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ChainedCommitCohort.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ChainedCommitCohort.java index 4b471cfa4a..1f87fd4259 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ChainedCommitCohort.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ChainedCommitCohort.java @@ -7,11 +7,16 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + +import com.google.common.primitives.UnsignedLong; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; +import java.util.Optional; +import java.util.SortedSet; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip; +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,49 +26,73 @@ final class ChainedCommitCohort extends ShardDataTreeCohort { private final ShardDataTreeTransactionChain chain; private final ShardDataTreeCohort delegate; - ChainedCommitCohort(final ShardDataTreeTransactionChain chain, final ReadWriteShardDataTreeTransaction transaction, final ShardDataTreeCohort delegate) { - this.transaction = Preconditions.checkNotNull(transaction); - this.delegate = Preconditions.checkNotNull(delegate); - this.chain = Preconditions.checkNotNull(chain); + ChainedCommitCohort(final ShardDataTreeTransactionChain chain, final ReadWriteShardDataTreeTransaction transaction, + final ShardDataTreeCohort delegate) { + this.transaction = requireNonNull(transaction); + this.delegate = requireNonNull(delegate); + this.chain = requireNonNull(chain); } @Override - public ListenableFuture commit() { - final ListenableFuture ret = delegate.commit(); - - Futures.addCallback(ret, new FutureCallback() { + public void commit(final FutureCallback callback) { + delegate.commit(new FutureCallback() { @Override - public void onSuccess(Void result) { + public void onSuccess(final UnsignedLong result) { chain.clearTransaction(transaction); LOG.debug("Committed transaction {}", transaction); + callback.onSuccess(result); } @Override - public void onFailure(Throwable t) { - LOG.error("Transaction {} commit failed, cannot recover", transaction, t); + public void onFailure(final Throwable failure) { + LOG.error("Transaction {} commit failed, cannot recover", transaction, failure); + callback.onFailure(failure); } }); + } - return ret; + @Override + public TransactionIdentifier getIdentifier() { + return delegate.getIdentifier(); } @Override - public ListenableFuture canCommit() { - return delegate.canCommit(); + public void canCommit(final FutureCallback callback) { + delegate.canCommit(callback); } @Override - public ListenableFuture preCommit() { - return delegate.preCommit(); + public void preCommit(final FutureCallback callback) { + delegate.preCommit(callback); } @Override - public ListenableFuture abort() { - return delegate.abort(); + public void abort(final FutureCallback callback) { + delegate.abort(callback); } @Override DataTreeCandidateTip getCandidate() { return delegate.getCandidate(); } -} \ No newline at end of file + + @Override + DataTreeModification getDataTreeModification() { + return delegate.getDataTreeModification(); + } + + @Override + public boolean isFailed() { + return delegate.isFailed(); + } + + @Override + public State getState() { + return delegate.getState(); + } + + @Override + Optional> getParticipatingShardNames() { + return delegate.getParticipatingShardNames(); + } +}