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%2FAbstractDOMBrokerWriteTransaction.java;h=39703f0f67b9168d5d400c223b0f59fe939ad50f;hb=e258e0fef2bc38e35f09354f0fdd5136c69ad1a7;hp=7d519babf56892e7d81510ff9ce35c593f6ac5dd;hpb=9db0c2407dbca4b9ac3e1a0f3217b3050bfa9797;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBrokerWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBrokerWriteTransaction.java index 7d519babf5..39703f0f67 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBrokerWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBrokerWriteTransaction.java @@ -5,29 +5,27 @@ * 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 static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkState; +import static java.util.Objects.requireNonNull; + import com.google.common.base.MoreObjects.ToStringHelper; -import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; import java.util.Collection; import java.util.Map; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; -import org.opendaylight.controller.md.sal.common.api.TransactionStatus; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; -import org.opendaylight.controller.md.sal.common.impl.service.AbstractDataTransaction; -import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; -import org.opendaylight.controller.md.sal.dom.broker.impl.TransactionCommitFailedExceptionMapper; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransactionFactory; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction; -import org.opendaylight.yangtools.yang.common.RpcResult; +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.broker.TransactionCommitFailedExceptionMapper; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionFactory; +import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -35,7 +33,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class AbstractDOMBrokerWriteTransaction - extends AbstractDOMBrokerTransaction implements DOMDataWriteTransaction { + extends AbstractDOMBrokerTransaction implements DOMDataTreeWriteTransaction { @SuppressWarnings("rawtypes") private static final AtomicReferenceFieldUpdater @@ -71,7 +69,7 @@ public abstract class AbstractDOMBrokerWriteTransaction storeTxFactories, final AbstractDOMTransactionFactory commitImpl) { super(identifier, storeTxFactories); - this.commitImpl = Preconditions.checkNotNull(commitImpl, "commitImpl must not be null."); + this.commitImpl = requireNonNull(commitImpl, "commitImpl must not be null."); } @Override @@ -84,11 +82,12 @@ public abstract class AbstractDOMBrokerWriteTransaction data) { - Preconditions.checkArgument(data != null, "Attempted to store null data at %s", path); + checkArgument(data != null, "Attempted to store null data at %s", path); final PathArgument lastArg = path.getLastPathArgument(); - Preconditions.checkArgument( - lastArg == data.getIdentifier() || lastArg != null && lastArg.equals(data.getIdentifier()), + if (lastArg != null) { + checkArgument(lastArg.equals(data.getIdentifier()), "Instance identifier references %s but data identifier is %s", lastArg, data); + } } @Override @@ -126,38 +125,32 @@ public abstract class AbstractDOMBrokerWriteTransaction> commit() { - return AbstractDataTransaction.convertToLegacyCommitFuture(submit()); - } - @Override - @SuppressWarnings("checkstyle:illegalcatch") - public CheckedFuture submit() { + @SuppressWarnings("checkstyle:IllegalCatch") + public FluentFuture commit() { final AbstractDOMTransactionFactory impl = IMPL_UPDATER.getAndSet(this, null); checkRunning(impl); final Collection txns = getSubtransactions(); final Collection cohorts = new ArrayList<>(txns.size()); - CheckedFuture ret; + FluentFuture ret; try { for (final T txn : txns) { cohorts.add(txn.ready()); } - ret = impl.submit(this, cohorts); + ret = impl.commit(this, cohorts); } catch (RuntimeException e) { - ret = Futures.immediateFailedCheckedFuture( - TransactionCommitFailedExceptionMapper.COMMIT_ERROR_MAPPER.apply(e)); + ret = FluentFuture.from(Futures.immediateFailedFuture( + TransactionCommitFailedExceptionMapper.COMMIT_ERROR_MAPPER.apply(e))); } FUTURE_UPDATER.lazySet(this, ret); return ret; } private void checkRunning(final AbstractDOMTransactionFactory impl) { - Preconditions.checkState(impl != null, "Transaction %s is no longer running", getIdentifier()); + checkState(impl != null, "Transaction %s is no longer running", getIdentifier()); } @Override