From 56ab3bad4c8bd10473a8c0557f1aeda9ebf26e67 Mon Sep 17 00:00:00 2001 From: Stepan Usatiuk Date: Wed, 7 May 2025 15:00:15 +0200 Subject: [PATCH] Objects: remove TransactionPrivate --- .../transaction/TransactionHandlePrivate.java | 7 ----- .../objects/transaction/TransactionImpl.java | 24 +++++++---------- .../transaction/TransactionManagerImpl.java | 2 +- .../transaction/TransactionPrivate.java | 27 ------------------- .../transaction/TransactionService.java | 6 ++--- 5 files changed, 13 insertions(+), 53 deletions(-) delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionHandlePrivate.java delete mode 100644 dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionPrivate.java diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionHandlePrivate.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionHandlePrivate.java deleted file mode 100644 index e340f4e8..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionHandlePrivate.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.usatiuk.objects.transaction; - -import java.util.Collection; - -public interface TransactionHandlePrivate extends TransactionHandle { - Collection getOnFlush(); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionImpl.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionImpl.java index 8e795499..f501f6cc 100644 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionImpl.java +++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionImpl.java @@ -5,13 +5,14 @@ import com.usatiuk.objects.JDataVersionedWrapper; import com.usatiuk.objects.JObjectKey; import com.usatiuk.objects.iterators.*; import com.usatiuk.objects.snapshot.Snapshot; +import com.usatiuk.utils.AutoCloseableNoThrow; import com.usatiuk.utils.ListUtils; import io.quarkus.logging.Log; import org.apache.commons.lang3.tuple.Pair; import java.util.*; -class TransactionImpl implements TransactionPrivate { +class TransactionImpl implements Transaction, AutoCloseableNoThrow { private final Map> _readSet = new HashMap<>(); private final NavigableMap> _writes = new TreeMap<>(); private final List _onCommit = new LinkedList<>(); @@ -63,23 +64,19 @@ class TransactionImpl implements TransactionPrivate { _onFlush.add(runnable); } - @Override - public Collection getOnCommit() { + Collection getOnCommit() { return Collections.unmodifiableCollection(_onCommit); } - @Override - public Snapshot snapshot() { + Snapshot snapshot() { return _snapshot; } - @Override - public Collection getOnFlush() { + Collection getOnFlush() { return Collections.unmodifiableCollection(_onFlush); } - @Override - public Optional getFromSource(Class type, JObjectKey key) { + Optional getFromSource(Class type, JObjectKey key) { if (_knownNew.contains(key)) { return Optional.empty(); } @@ -156,8 +153,7 @@ class TransactionImpl implements TransactionPrivate { _newWrites.put(key, record); } - @Override - public Collection> drainNewWrites() { + Collection> drainNewWrites() { if (!_writeTrack) { _writeTrack = true; return Collections.unmodifiableCollection(_writes.values()); @@ -167,13 +163,11 @@ class TransactionImpl implements TransactionPrivate { return ret.values(); } - @Override - public Map> reads() { + Map> reads() { return _readSet; } - @Override - public Set knownNew() { + Set knownNew() { return _knownNew; } diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManagerImpl.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManagerImpl.java index 5f21fa88..2eda3b49 100644 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManagerImpl.java +++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionManagerImpl.java @@ -11,7 +11,7 @@ import java.util.Stack; @Singleton public class TransactionManagerImpl implements TransactionManager { - private static final ThreadLocal> _currentTransaction = ThreadLocal.withInitial(Stack::new); + private static final ThreadLocal> _currentTransaction = ThreadLocal.withInitial(Stack::new); @Inject TransactionService transactionService; diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionPrivate.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionPrivate.java deleted file mode 100644 index 90ed0002..00000000 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionPrivate.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.usatiuk.objects.transaction; - -import com.usatiuk.objects.JData; -import com.usatiuk.objects.JDataVersionedWrapper; -import com.usatiuk.objects.JObjectKey; -import com.usatiuk.objects.snapshot.Snapshot; -import com.usatiuk.utils.AutoCloseableNoThrow; - -import java.util.Collection; -import java.util.Map; -import java.util.Optional; -import java.util.Set; - -// The transaction interface actually used by user code to retrieve objects -public interface TransactionPrivate extends Transaction, TransactionHandlePrivate, AutoCloseableNoThrow { - Collection> drainNewWrites(); - - Map> reads(); - - Set knownNew(); - - Optional getFromSource(Class type, JObjectKey key); - - Collection getOnCommit(); - - Snapshot snapshot(); -} diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionService.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionService.java index 67a6b05b..659c6480 100644 --- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionService.java +++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/TransactionService.java @@ -46,14 +46,14 @@ public class TransactionService { _ready = true; } - public TransactionPrivate createTransaction() { + public TransactionImpl createTransaction() { verifyReady(); var tx = new TransactionImpl(writebackObjectPersistentStore.getSnapshot()); Log.tracev("Created transaction with snapshotId={0}", tx.snapshot().id()); return tx; } - public Pair, TransactionHandle> commit(TransactionPrivate tx) { + public Pair, TransactionHandle> commit(TransactionImpl tx) { verifyReady(); var writes = new HashMap>(); Snapshot commitSnapshot = null; @@ -257,7 +257,7 @@ public class TransactionService { } } - public void rollback(TransactionPrivate tx) { + public void rollback(TransactionImpl tx) { verifyReady(); tx.close(); }