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%2Fdatabroker%2FDOMBrokerTransactionChain.java;h=3364d23143db46478fc05fb92b3f9f90a59e6da8;hb=7ce039b3e55d153fc75bc88198c49536ab83befc;hp=9610647fff810449773078c0d3aca51e2e313785;hpb=9fb1df14f2dc885fee1dce821b753cc99af6e54f;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerTransactionChain.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerTransactionChain.java index 9610647fff..3364d23143 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerTransactionChain.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerTransactionChain.java @@ -5,31 +5,33 @@ * 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.cluster.databroker; -import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; +import static com.google.common.base.Preconditions.checkState; +import static java.util.Objects.requireNonNull; + +import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.MoreExecutors; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collection; import java.util.Map; import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; -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.common.api.data.TransactionCommitFailedException; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransactionChain; +import org.opendaylight.mdsal.common.api.CommitInfo; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; +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.dom.spi.store.DOMStoreThreePhaseCommitCohort; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain; import org.slf4j.Logger; import org.slf4j.LoggerFactory; final class DOMBrokerTransactionChain extends AbstractDOMTransactionFactory implements DOMTransactionChain { - private static enum State { + private enum State { RUNNING, CLOSING, CLOSED, @@ -43,13 +45,14 @@ final class DOMBrokerTransactionChain extends AbstractDOMTransactionFactory chains, - AbstractDOMBroker broker, final TransactionChainListener listener) { + DOMBrokerTransactionChain(final long chainId, final Map chains, + final AbstractDOMBroker broker, final DOMTransactionChainListener listener) { super(chains); this.chainId = chainId; - this.broker = Preconditions.checkNotNull(broker); - this.listener = Preconditions.checkNotNull(listener); + this.broker = requireNonNull(broker); + this.listener = requireNonNull(listener); } private void checkNotFailed() { - Preconditions.checkState(state != State.FAILED, "Transaction chain has failed"); + checkState(state != State.FAILED, "Transaction chain has failed"); } @Override @@ -79,25 +81,25 @@ final class DOMBrokerTransactionChain extends AbstractDOMTransactionFactory submit( - final DOMDataWriteTransaction transaction, final Collection cohorts) { + public FluentFuture commit( + final DOMDataTreeWriteTransaction transaction, final Collection cohorts) { checkNotFailed(); checkNotClosed(); - final CheckedFuture ret = broker.submit(transaction, cohorts); + final FluentFuture ret = broker.commit(transaction, cohorts); COUNTER_UPDATER.incrementAndGet(this); - Futures.addCallback(ret, new FutureCallback() { + ret.addCallback(new FutureCallback() { @Override - public void onSuccess(final Void result) { + public void onSuccess(final CommitInfo result) { transactionCompleted(); } @Override - public void onFailure(final Throwable t) { - transactionFailed(transaction, t); + public void onFailure(final Throwable failure) { + transactionFailed(transaction, failure); } - }); + }, MoreExecutors.directExecutor()); return ret; } @@ -125,15 +127,19 @@ final class DOMBrokerTransactionChain extends AbstractDOMTransactionFactory