X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-common-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fcommon%2Fimpl%2Fservice%2FAbstractDataTransaction.java;h=e441cfab4148516e0de15ba74347fe6326b2faf5;hb=refs%2Fchanges%2F99%2F69099%2F2;hp=d544c4b3710b06a12dac1bba3b11b5e13ced4f89;hpb=17d82f582a6bc13c78be3b19954ff8c021180e93;p=controller.git diff --git a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/service/AbstractDataTransaction.java b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/service/AbstractDataTransaction.java index d544c4b371..e441cfab41 100644 --- a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/service/AbstractDataTransaction.java +++ b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/service/AbstractDataTransaction.java @@ -7,141 +7,24 @@ */ package org.opendaylight.controller.md.sal.common.impl.service; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; - +import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import org.opendaylight.controller.md.sal.common.api.TransactionStatus; import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException; -import org.opendaylight.controller.md.sal.common.impl.AbstractDataModification; -import org.opendaylight.yangtools.concepts.Path; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Preconditions; -import com.google.common.util.concurrent.AsyncFunction; -import com.google.common.util.concurrent.CheckedFuture; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; - -public abstract class AbstractDataTransaction

, D extends Object> extends - AbstractDataModification { - private final static Logger LOG = LoggerFactory.getLogger(AbstractDataTransaction.class); - - private final Object identifier; - private final long allocationTime; - private long readyTime = 0; - private long completeTime = 0; - - private TransactionStatus status = TransactionStatus.NEW; - - private final AbstractDataBroker broker; - - protected AbstractDataTransaction(final Object identifier, - final AbstractDataBroker dataBroker) { - super(dataBroker); - this.identifier = Preconditions.checkNotNull(identifier); - this.broker = Preconditions.checkNotNull(dataBroker); - this.allocationTime = System.nanoTime(); - LOG.debug("Transaction {} Allocated.", identifier); - } - - @Override - public Object getIdentifier() { - return this.identifier; - } - - @Override - public Future> commit() { - readyTime = System.nanoTime(); - LOG.debug("Transaction {} Ready after {}ms.", identifier, TimeUnit.NANOSECONDS.toMillis(readyTime - allocationTime)); - changeStatus(TransactionStatus.SUBMITED); - - return this.broker.commit(this); - } - - @Override - public D readConfigurationData(final P path) { - final D local = getUpdatedConfigurationData().get(path); - if (local != null) { - return local; - } - return this.broker.readConfigurationData(path); - } - - @Override - public D readOperationalData(final P path) { - final D local = this.getUpdatedOperationalData().get(path); - if (local != null) { - return local; - } - return this.broker.readOperationalData(path); - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((identifier == null) ? 0 : identifier.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (getClass() != obj.getClass()) { - return false; - } - AbstractDataTransaction other = (AbstractDataTransaction) obj; - if (identifier == null) { - if (other.identifier != null) { - return false; - } - } else if (!identifier.equals(other.identifier)) { - return false; - } - return true; - } - - @Override - public TransactionStatus getStatus() { - return this.status; - } - - protected abstract void onStatusChange(final TransactionStatus status); - - public void succeeded() { - this.completeTime = System.nanoTime(); - LOG.debug("Transaction {} Committed after {}ms.", identifier, TimeUnit.NANOSECONDS.toMillis(completeTime - readyTime)); - changeStatus(TransactionStatus.COMMITED); - } - - public void failed() { - this.completeTime = System.nanoTime(); - LOG.debug("Transaction {} Failed after {}ms.", identifier, TimeUnit.NANOSECONDS.toMillis(completeTime - readyTime)); - changeStatus(TransactionStatus.FAILED); - } - - private void changeStatus(final TransactionStatus status) { - LOG.debug("Transaction {} transitioned from {} to {}", getIdentifier(), this.status, status); - this.status = status; - this.onStatusChange(status); - } +@Deprecated +public abstract class AbstractDataTransaction { + private static final Logger LOG = LoggerFactory.getLogger(AbstractDataTransaction.class); + private static final ListenableFuture> SUCCESS_FUTURE = + Futures.immediateFuture(RpcResultBuilder.success(TransactionStatus.COMMITED).build()); public static ListenableFuture> convertToLegacyCommitFuture( - CheckedFuture from ) { - return Futures.transform(from, new AsyncFunction>() { - @Override - public ListenableFuture> apply(Void input) throws Exception { - return Futures.immediateFuture(RpcResultBuilder. - success(TransactionStatus.COMMITED).build()); - } - } ); + final CheckedFuture from) { + return Futures.transformAsync(from, input -> SUCCESS_FUTURE); } }