*/
package org.opendaylight.controller.cluster.datastore;
+import static com.google.common.base.Preconditions.checkArgument;
+import static java.util.Objects.requireNonNull;
+
import akka.actor.ActorSelection;
-import com.google.common.base.Preconditions;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
-import org.opendaylight.controller.cluster.datastore.utils.ActorContext;
-import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction;
-import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadWriteTransaction;
-import org.opendaylight.controller.sal.core.spi.data.DOMStoreThreePhaseCommitCohort;
-import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction;
-import org.opendaylight.controller.sal.core.spi.data.SnapshotBackedTransactions;
-import org.opendaylight.controller.sal.core.spi.data.SnapshotBackedWriteTransaction;
-import org.opendaylight.controller.sal.core.spi.data.SnapshotBackedWriteTransaction.TransactionReadyPrototype;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
+import org.opendaylight.controller.cluster.datastore.utils.ActorUtils;
+import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction;
+import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction;
+import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort;
+import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction;
+import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedTransactions;
+import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction;
+import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.TransactionReadyPrototype;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree;
/**
* {@link LocalTransactionFactory} for instantiating backing transactions which are
implements LocalTransactionFactory {
private final ActorSelection leader;
- private final DataTree dataTree;
- private final ActorContext actorContext;
+ private final ReadOnlyDataTree dataTree;
+ private final ActorUtils actorUtils;
- LocalTransactionFactoryImpl(final ActorContext actorContext, final ActorSelection leader, final DataTree dataTree) {
- this.leader = Preconditions.checkNotNull(leader);
- this.dataTree = Preconditions.checkNotNull(dataTree);
- this.actorContext = actorContext;
+ LocalTransactionFactoryImpl(final ActorUtils actorUtils, final ActorSelection leader,
+ final ReadOnlyDataTree dataTree) {
+ this.leader = requireNonNull(leader);
+ this.dataTree = requireNonNull(dataTree);
+ this.actorUtils = actorUtils;
}
- DataTree getDataTree() {
+ ReadOnlyDataTree getDataTree() {
return dataTree;
}
}
@Override
- protected DOMStoreThreePhaseCommitCohort transactionReady(final SnapshotBackedWriteTransaction<TransactionIdentifier> tx,
- final DataTreeModification tree) {
- return new LocalThreePhaseCommitCohort(actorContext, leader, tx, tree);
+ protected DOMStoreThreePhaseCommitCohort transactionReady(
+ final SnapshotBackedWriteTransaction<TransactionIdentifier> tx,
+ final DataTreeModification tree,
+ final Exception readyError) {
+ return new LocalThreePhaseCommitCohort(actorUtils, leader, tx, tree, readyError);
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"unchecked", "checkstyle:IllegalCatch"})
@Override
- public LocalThreePhaseCommitCohort onTransactionReady(@Nonnull DOMStoreWriteTransaction tx,
- @Nullable Exception operationError) {
- if(operationError != null) {
- return new LocalThreePhaseCommitCohort(actorContext, leader,
+ public LocalThreePhaseCommitCohort onTransactionReady(DOMStoreWriteTransaction tx, Exception operationError) {
+ checkArgument(tx instanceof SnapshotBackedWriteTransaction);
+ if (operationError != null) {
+ return new LocalThreePhaseCommitCohort(actorUtils, leader,
(SnapshotBackedWriteTransaction<TransactionIdentifier>)tx, operationError);
}
- try {
- return (LocalThreePhaseCommitCohort) tx.ready();
- } catch (Exception e) {
- // Unfortunately we need to cast to SnapshotBackedWriteTransaction here as it's required by
- // LocalThreePhaseCommitCohort.
- return new LocalThreePhaseCommitCohort(actorContext, leader,
- (SnapshotBackedWriteTransaction<TransactionIdentifier>)tx, e);
- }
+ return (LocalThreePhaseCommitCohort) tx.ready();
}
}