X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2FDOMDataBrokerTransactionChainImpl.java;h=4c131e1ea39fc91ce782a14d093b1e1ed1ad68c7;hb=84d6864d26fddddd92da32fd00d57c7224d4213d;hp=fd216ec942d3bc8f355d5efcc03c777f4535d289;hpb=d16ccd43e544f6493672d4bfd1e7103f4eb70494;p=controller.git diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerTransactionChainImpl.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerTransactionChainImpl.java old mode 100644 new mode 100755 index fd216ec942..4c131e1ea3 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerTransactionChainImpl.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMDataBrokerTransactionChainImpl.java @@ -9,9 +9,11 @@ package org.opendaylight.controller.md.sal.dom.broker.impl; import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.base.Supplier; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.MoreExecutors; import java.util.Collection; import java.util.Map; import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; @@ -19,7 +21,6 @@ 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; @@ -28,24 +29,21 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * NormalizedNode implementation of {@link org.opendaylight.controller.md.sal.common.api.data.TransactionChain} which is backed + * NormalizedNode implementation of {@link org.opendaylight.controller.md.sal.common.api.data.TransactionChain} which + * is backed * by several {@link DOMStoreTransactionChain} differentiated by provided * {@link org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType} type. - * */ -final class DOMDataBrokerTransactionChainImpl extends AbstractDOMForwardedTransactionFactory - implements DOMTransactionChain { - private static enum State { - RUNNING, - CLOSING, - CLOSED, - FAILED, +final class DOMDataBrokerTransactionChainImpl extends + AbstractDOMForwardedTransactionFactory implements DOMTransactionChain { + private enum State { + RUNNING, CLOSING, CLOSED, FAILED, } - private static final AtomicIntegerFieldUpdater COUNTER_UPDATER = - AtomicIntegerFieldUpdater.newUpdater(DOMDataBrokerTransactionChainImpl.class, "counter"); - private static final AtomicReferenceFieldUpdater STATE_UPDATER = - AtomicReferenceFieldUpdater.newUpdater(DOMDataBrokerTransactionChainImpl.class, State.class, "state"); + private static final AtomicIntegerFieldUpdater COUNTER_UPDATER + = AtomicIntegerFieldUpdater.newUpdater(DOMDataBrokerTransactionChainImpl.class, "counter"); + private static final AtomicReferenceFieldUpdater STATE_UPDATER + = AtomicReferenceFieldUpdater.newUpdater(DOMDataBrokerTransactionChainImpl.class, State.class, "state"); private static final Logger LOG = LoggerFactory.getLogger(DOMDataBrokerTransactionChainImpl.class); private final AtomicLong txNum = new AtomicLong(); private final AbstractDOMDataBroker broker; @@ -56,23 +54,20 @@ final class DOMDataBrokerTransactionChainImpl extends AbstractDOMForwardedTransa private volatile int counter = 0; /** + * DOMDataBrokerTransactionChainImpl constructor. * - * @param chainId - * ID of transaction chain - * @param chains - * Backing {@link DOMStoreTransactionChain}s. - * @param coordinator - * Commit Coordinator which should be used to coordinate commits - * of transaction - * produced by this chain. - * @param listener - * Listener, which listens on transaction chain events. - * @throws NullPointerException - * If any of arguments is null. + * @param chainId ID of transaction chain + * @param chains Backing {@link DOMStoreTransactionChain}s. + * @param broker Commit Coordinator which should be used to coordinate commits + * of transaction + * produced by this chain. + * @param listener Listener, which listens on transaction chain events. + * @throws NullPointerException If any of arguments is null. */ - public DOMDataBrokerTransactionChainImpl(final long chainId, - final Map chains, - final AbstractDOMDataBroker broker, final TransactionChainListener listener) { + DOMDataBrokerTransactionChainImpl(final long chainId, + final Map chains, + final AbstractDOMDataBroker broker, + final TransactionChainListener listener) { super(chains); this.chainId = chainId; this.broker = Preconditions.checkNotNull(broker); @@ -89,25 +84,25 @@ final class DOMDataBrokerTransactionChainImpl extends AbstractDOMForwardedTransa } @Override - public CheckedFuture submit( - final DOMDataWriteTransaction transaction, final Collection cohorts) { + public ListenableFuture commit(final DOMDataWriteTransaction transaction, + final Collection cohorts, final Supplier futureValueSupplier) { checkNotFailed(); checkNotClosed(); - final CheckedFuture ret = broker.submit(transaction, cohorts); + final ListenableFuture ret = broker.commit(transaction, cohorts, futureValueSupplier); COUNTER_UPDATER.incrementAndGet(this); - Futures.addCallback(ret, new FutureCallback() { + Futures.addCallback(ret, new FutureCallback() { @Override - public void onSuccess(final Void result) { + public void onSuccess(final T result) { transactionCompleted(); } @Override - public void onFailure(final Throwable t) { - transactionFailed(transaction, t); + public void onFailure(final Throwable throwable) { + transactionFailed(transaction, throwable); } - }); + }, MoreExecutors.directExecutor()); return ret; }