Refactor transaction support in preparation for migration to latest APIs
- Added a explicit transaction id type
- cli command now just returns the identifiers of in-progress transactions
- Removed redriveTransactions until a better alternative is provided
- Removed DatabaseUpdate and replaced its usage with MapUpdate
Change-Id: Ic4a14967072068834510cd8459fd2a6790e456ef
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMap.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMap.java
index 46487f2..5342d74 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMap.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMap.java
@@ -31,6 +31,9 @@
import java.util.function.Predicate;
import org.onlab.util.Match;
+import org.onosproject.store.primitives.TransactionId;
+import org.onosproject.store.primitives.impl.Transaction;
+import org.onosproject.store.primitives.impl.TransactionParticipant;
import org.onosproject.store.service.AsyncConsistentMap;
import org.onosproject.store.service.MapEvent;
import org.onosproject.store.service.MapEventListener;
@@ -43,7 +46,7 @@
*/
@ResourceTypeInfo(id = -151, stateMachine = AtomixConsistentMapState.class)
public class AtomixConsistentMap extends Resource<AtomixConsistentMap, Resource.Options>
- implements AsyncConsistentMap<String, byte[]> {
+ implements AsyncConsistentMap<String, byte[]>, TransactionParticipant {
private final Set<MapEventListener<String, byte[]>> mapEventListeners = Sets.newCopyOnWriteArraySet();
@@ -235,18 +238,6 @@
});
}
- public CompletableFuture<PrepareResult> prepare(TransactionalMapUpdate<String, byte[]> update) {
- return submit(new AtomixConsistentMapCommands.TransactionPrepare(update));
- }
-
- public CompletableFuture<CommitResult> commit(TransactionId transactionId) {
- return submit(new AtomixConsistentMapCommands.TransactionCommit(transactionId));
- }
-
- public CompletableFuture<RollbackResult> rollback(TransactionId transactionId) {
- return submit(new AtomixConsistentMapCommands.TransactionRollback(transactionId));
- }
-
@Override
public synchronized CompletableFuture<Void> addListener(MapEventListener<String, byte[]> listener) {
if (!mapEventListeners.isEmpty()) {
@@ -274,6 +265,21 @@
}
}
+ @Override
+ public CompletableFuture<PrepareResult> prepare(Transaction transaction) {
+ return submit(new AtomixConsistentMapCommands.TransactionPrepare(transaction));
+ }
+
+ @Override
+ public CompletableFuture<CommitResult> commit(TransactionId transactionId) {
+ return submit(new AtomixConsistentMapCommands.TransactionCommit(transactionId));
+ }
+
+ @Override
+ public CompletableFuture<RollbackResult> rollback(TransactionId transactionId) {
+ return submit(new AtomixConsistentMapCommands.TransactionRollback(transactionId));
+ }
+
/**
* Change listener context.
*/