diff --git a/dhfs-parent/.run/Main 2.run.xml b/dhfs-parent/.run/Main 2.run.xml
index 67ea3715..a439d27e 100644
--- a/dhfs-parent/.run/Main 2.run.xml
+++ b/dhfs-parent/.run/Main 2.run.xml
@@ -1,16 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dhfs-parent/.run/Main.run.xml b/dhfs-parent/.run/Main.run.xml
index 601c96ed..cf3d6aae 100644
--- a/dhfs-parent/.run/Main.run.xml
+++ b/dhfs-parent/.run/Main.run.xml
@@ -1,16 +1,18 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/TestDataCleaner.java b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/TestDataCleaner.java
index fc819a74..20587626 100644
--- a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/TestDataCleaner.java
+++ b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/TestDataCleaner.java
@@ -18,18 +18,6 @@ public class TestDataCleaner {
@ConfigProperty(name = "dhfs.objects.persistence.files.root")
String tempDirectory;
- void init(@Observes @Priority(1) StartupEvent event) throws IOException {
- try {
- purgeDirectory(Path.of(tempDirectory).toFile());
- } catch (Exception ignored) {
- Log.warn("Couldn't cleanup test data on init");
- }
- }
-
- void shutdown(@Observes @Priority(1000000000) ShutdownEvent event) throws IOException {
- purgeDirectory(Path.of(tempDirectory).toFile());
- }
-
public static void purgeDirectory(File dir) {
try {
for (File file : Objects.requireNonNull(dir.listFiles())) {
@@ -41,4 +29,16 @@ public class TestDataCleaner {
Log.error("Couldn't purge directory " + dir, e);
}
}
+
+ void init(@Observes @Priority(1) StartupEvent event) throws IOException {
+ try {
+ purgeDirectory(Path.of(tempDirectory).toFile());
+ } catch (Exception ignored) {
+ Log.warn("Couldn't cleanup test data on init");
+ }
+ }
+
+ void shutdown(@Observes @Priority(1000000000) ShutdownEvent event) throws IOException {
+ purgeDirectory(Path.of(tempDirectory).toFile());
+ }
}
diff --git a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/integration/LazyFs.java b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/integration/LazyFs.java
index 59dddffc..ab81ecaf 100644
--- a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/integration/LazyFs.java
+++ b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/integration/LazyFs.java
@@ -6,25 +6,26 @@ import java.io.*;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.CyclicBarrier;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit;
public class LazyFs {
private static final String lazyFsPath;
- private final String mountRoot;
- private final String dataRoot;
- private final String name;
-
- private final File configFile;
- private final File fifoFile;
-
static {
lazyFsPath = System.getProperty("lazyFsPath");
System.out.println("LazyFs Path: " + lazyFsPath);
}
+ private final String mountRoot;
+ private final String dataRoot;
+ private final String name;
+ private final File configFile;
+ private final File fifoFile;
+ private Thread errPiper;
+ private Thread outPiper;
+ private CountDownLatch startLatch;
+ private Process fs;
public LazyFs(String name, String mountRoot, String dataRoot) {
this.name = name;
this.mountRoot = mountRoot;
@@ -43,11 +44,6 @@ public class LazyFs {
Runtime.getRuntime().addShutdownHook(new Thread(this::stop));
}
- private Thread errPiper;
- private Thread outPiper;
- private CountDownLatch startLatch;
- private Process fs;
-
private String fifoPath() {
return fifoFile.getAbsolutePath();
}
diff --git a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/integration/LazyFsIT.java b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/integration/LazyFsIT.java
index 99396670..f4825cb1 100644
--- a/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/integration/LazyFsIT.java
+++ b/dhfs-parent/dhfs-app/src/test/java/com/usatiuk/dhfsapp/integration/LazyFsIT.java
@@ -4,8 +4,8 @@ import com.github.dockerjava.api.model.Device;
import com.usatiuk.dhfsapp.TestDataCleaner;
import io.quarkus.logging.Log;
import org.junit.jupiter.api.*;
-import org.junit.jupiter.params.provider.EnumSource;
import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.EnumSource;
import org.slf4j.LoggerFactory;
import org.testcontainers.DockerClientFactory;
import org.testcontainers.containers.GenericContainer;
@@ -137,12 +137,6 @@ public class LazyFsIT {
});
}
- private static enum CrashType {
- CRASH,
- TORN_OP,
- TORN_SEQ
- }
-
@ParameterizedTest
@EnumSource(CrashType.class)
void killTest(CrashType crashType, TestInfo testInfo) throws Exception {
@@ -220,7 +214,6 @@ public class LazyFsIT {
checkConsistency(testInfo.getDisplayName());
}
-
@ParameterizedTest
@EnumSource(CrashType.class)
void killTestDirs(CrashType crashType, TestInfo testInfo) throws Exception {
@@ -380,7 +373,6 @@ public class LazyFsIT {
checkConsistency(testInfo.getDisplayName());
}
-
@ParameterizedTest
@EnumSource(CrashType.class)
void killTestDirs2(CrashType crashType, TestInfo testInfo) throws Exception {
@@ -464,4 +456,11 @@ public class LazyFsIT {
}
+ private static enum CrashType {
+ CRASH,
+ TORN_OP,
+ TORN_SEQ
+ }
+
+
}
diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkData.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkData.java
index 78930fdb..ffe0fc31 100644
--- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkData.java
+++ b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkData.java
@@ -2,8 +2,8 @@ package com.usatiuk.dhfsfs.objects;
import com.google.protobuf.ByteString;
import com.usatiuk.dhfs.remoteobj.JDataRemote;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.remoteobj.JDataRemoteDto;
+import com.usatiuk.objects.JObjectKey;
public record ChunkData(JObjectKey key, ByteString data) implements JDataRemote, JDataRemoteDto {
@Override
diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkDataProtoSerializer.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkDataProtoSerializer.java
index f83ae380..482d66d4 100644
--- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkDataProtoSerializer.java
+++ b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/ChunkDataProtoSerializer.java
@@ -1,9 +1,9 @@
package com.usatiuk.dhfsfs.objects;
import com.usatiuk.dhfs.ProtoSerializer;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.persistence.ChunkDataP;
import com.usatiuk.dhfs.persistence.JObjectKeyP;
+import com.usatiuk.objects.JObjectKey;
import jakarta.inject.Singleton;
@Singleton
diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/File.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/File.java
index defd8489..26aab23d 100644
--- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/File.java
+++ b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/File.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfsfs.objects;
-import com.usatiuk.dhfs.remoteobj.JDataRemote;
import com.usatiuk.dhfs.jmap.JMapHolder;
import com.usatiuk.dhfs.jmap.JMapLongKey;
+import com.usatiuk.dhfs.remoteobj.JDataRemote;
import com.usatiuk.dhfs.remoteobj.JDataRemoteDto;
import com.usatiuk.objects.JObjectKey;
diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDto.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDto.java
index 1e5b4565..a657427b 100644
--- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDto.java
+++ b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileDto.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfsfs.objects;
import com.usatiuk.dhfs.remoteobj.JDataRemote;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.remoteobj.JDataRemoteDto;
+import com.usatiuk.objects.JObjectKey;
import org.apache.commons.lang3.tuple.Pair;
import java.util.List;
diff --git a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileHelper.java b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileHelper.java
index a59cbb97..ac53169c 100644
--- a/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileHelper.java
+++ b/dhfs-parent/dhfs-fs/src/main/java/com/usatiuk/dhfsfs/objects/FileHelper.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfsfs.objects;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.jmap.JMapHelper;
import com.usatiuk.dhfs.jmap.JMapLongKey;
+import com.usatiuk.objects.JObjectKey;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import org.apache.commons.lang3.tuple.Pair;
diff --git a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestImpl.java b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestImpl.java
index 731b09b3..509d5e83 100644
--- a/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestImpl.java
+++ b/dhfs-parent/dhfs-fs/src/test/java/com/usatiuk/dhfsfs/DhfsFileServiceSimpleTestImpl.java
@@ -125,7 +125,7 @@ public abstract class DhfsFileServiceSimpleTestImpl {
var newMtime = fileService.getattr(uuid).get().mtime();
Assertions.assertTrue(newMtime > curMtime);
-
+
fileService.unlink("/writeTest");
Assertions.assertFalse(fileService.open("/writeTest").isPresent());
}
diff --git a/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/DhfsFuse.java b/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/DhfsFuse.java
index ccc92e29..891beaca 100644
--- a/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/DhfsFuse.java
+++ b/dhfs-parent/dhfs-fuse/src/main/java/com/usatiuk/dhfsfuse/DhfsFuse.java
@@ -40,6 +40,8 @@ import static jnr.posix.FileStat.*;
public class DhfsFuse extends FuseStubFS {
private static final int blksize = 1048576;
private static final int iosize = 1048576;
+ private final ConcurrentHashMap _openHandles = new ConcurrentHashMap<>();
+ private final AtomicLong _fh = new AtomicLong(1);
@ConfigProperty(name = "dhfs.fuse.root")
String root;
@ConfigProperty(name = "dhfs.fuse.enabled")
@@ -53,9 +55,6 @@ public class DhfsFuse extends FuseStubFS {
@Inject
DhfsFileService fileService;
- private final ConcurrentHashMap _openHandles = new ConcurrentHashMap<>();
- private final AtomicLong _fh = new AtomicLong(1);
-
private long allocateHandle(JObjectKey key) {
while (true) {
var newFh = _fh.getAndIncrement();
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java
index a17b800c..b1ef09e6 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/JDataVersionedWrapperLazy.java
@@ -3,9 +3,9 @@ package com.usatiuk.objects;
import java.util.function.Supplier;
public final class JDataVersionedWrapperLazy implements JDataVersionedWrapper {
- private JData _data;
private final long _version;
private final int _estimatedSize;
+ private JData _data;
private Supplier _producer;
public JDataVersionedWrapperLazy(long version, int estimatedSize, Supplier producer) {
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Data.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Data.java
index 98c487ad..a129633e 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Data.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Data.java
@@ -1,7 +1,5 @@
package com.usatiuk.objects.iterators;
-import java.util.Optional;
-
public interface Data extends MaybeTombstone {
V value();
}
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/DataWrapper.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/DataWrapper.java
index 585bd654..5f38c7e4 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/DataWrapper.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/DataWrapper.java
@@ -1,6 +1,4 @@
package com.usatiuk.objects.iterators;
-import java.util.Optional;
-
public record DataWrapper(V value) implements Data {
}
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MaybeTombstone.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MaybeTombstone.java
index 7e04e01f..1cb713e4 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MaybeTombstone.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MaybeTombstone.java
@@ -1,6 +1,4 @@
package com.usatiuk.objects.iterators;
-import java.util.Optional;
-
public interface MaybeTombstone {
}
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java
index a772de19..49953199 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/MergingKvIterator.java
@@ -10,16 +10,9 @@ import java.util.NoSuchElementException;
import java.util.TreeMap;
public class MergingKvIterator, V> extends ReversibleKvIterator {
- private record IteratorEntry, V>(int priority, CloseableKvIterator iterator) {
- public IteratorEntry reversed() {
- return new IteratorEntry<>(priority, iterator.reversed());
- }
- }
-
private final NavigableMap> _sortedIterators = new TreeMap<>();
private final String _name;
private final List> _iterators;
-
public MergingKvIterator(String name, IteratorStart startType, K startKey, List> iterators) {
_goingForward = true;
_name = name;
@@ -215,6 +208,12 @@ public class MergingKvIterator, V> extends ReversibleKvI
private interface FirstMatchState, V> {
}
+ private record IteratorEntry, V>(int priority, CloseableKvIterator iterator) {
+ public IteratorEntry reversed() {
+ return new IteratorEntry<>(priority, iterator.reversed());
+ }
+ }
+
private record FirstMatchNone, V>() implements FirstMatchState {
}
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/PredicateKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/PredicateKvIterator.java
index cd61324c..d042ed1e 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/PredicateKvIterator.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/PredicateKvIterator.java
@@ -1,6 +1,5 @@
package com.usatiuk.objects.iterators;
-import io.quarkus.logging.Log;
import org.apache.commons.lang3.tuple.Pair;
import java.util.NoSuchElementException;
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Tombstone.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Tombstone.java
index 425c8c65..1619ce2b 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Tombstone.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/Tombstone.java
@@ -1,6 +1,4 @@
package com.usatiuk.objects.iterators;
-import java.util.Optional;
-
public interface Tombstone extends MaybeTombstone {
}
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneMergingKvIterator.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneMergingKvIterator.java
index 925802c6..097b23e8 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneMergingKvIterator.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/iterators/TombstoneMergingKvIterator.java
@@ -1,7 +1,5 @@
package com.usatiuk.objects.iterators;
-import io.quarkus.logging.Log;
-
import java.util.List;
public abstract class TombstoneMergingKvIterator {
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/CachingObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/CachingObjectPersistentStore.java
index 80dbdf53..a04c70e8 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/CachingObjectPersistentStore.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/CachingObjectPersistentStore.java
@@ -24,52 +24,15 @@ import java.util.concurrent.atomic.AtomicReference;
@ApplicationScoped
public class CachingObjectPersistentStore {
+ private final AtomicReference _cache;
@Inject
SerializingObjectPersistentStore delegate;
@ConfigProperty(name = "dhfs.objects.lru.print-stats")
boolean printStats;
-
- private record Cache(TreePMap map,
- int size,
- long version,
- int sizeLimit) {
- public Cache withPut(JObjectKey key, Optional obj) {
- var entry = obj.map(o -> new CacheEntryPresent(o, o.estimateSize())).orElse(new CacheEntryMiss());
-
- int newSize = size() + entry.size();
-
- var old = map.get(key);
- if (old != null)
- newSize -= old.size();
-
- TreePMap newCache = map();
-
- while (newSize > sizeLimit) {
- var del = newCache.firstEntry();
- newCache = newCache.minusFirstEntry();
- newSize -= del.getValue().size();
- }
-
- newCache = newCache.plus(key, entry);
- return new Cache(
- newCache,
- newSize,
- version,
- sizeLimit
- );
- }
-
- public Cache withVersion(long version) {
- return new Cache(map, size, version, sizeLimit);
- }
- }
-
- private final AtomicReference _cache;
private ExecutorService _commitExecutor;
private ExecutorService _statusExecutor;
private AtomicLong _cached = new AtomicLong();
private AtomicLong _cacheTries = new AtomicLong();
-
public CachingObjectPersistentStore(@ConfigProperty(name = "dhfs.objects.lru.limit") int sizeLimit) {
_cache = new AtomicReference<>(
new Cache(TreePMap.empty(), 0, -1, sizeLimit)
@@ -142,10 +105,10 @@ public class CachingObjectPersistentStore {
Snapshot finalBacking = backing;
Cache finalCurCache = curCache;
return new Snapshot() {
- private boolean _invalid = false;
- private boolean _closed = false;
private final Cache _curCache = finalCurCache;
private final Snapshot _backing = finalBacking;
+ private boolean _invalid = false;
+ private boolean _closed = false;
private void doCache(JObjectKey key, Optional obj) {
_cacheTries.incrementAndGet();
@@ -292,6 +255,41 @@ public class CachingObjectPersistentStore {
int size();
}
+ private record Cache(TreePMap map,
+ int size,
+ long version,
+ int sizeLimit) {
+ public Cache withPut(JObjectKey key, Optional obj) {
+ var entry = obj.map(o -> new CacheEntryPresent(o, o.estimateSize())).orElse(new CacheEntryMiss());
+
+ int newSize = size() + entry.size();
+
+ var old = map.get(key);
+ if (old != null)
+ newSize -= old.size();
+
+ TreePMap newCache = map();
+
+ while (newSize > sizeLimit) {
+ var del = newCache.firstEntry();
+ newCache = newCache.minusFirstEntry();
+ newSize -= del.getValue().size();
+ }
+
+ newCache = newCache.plus(key, entry);
+ return new Cache(
+ newCache,
+ newSize,
+ version,
+ sizeLimit
+ );
+ }
+
+ public Cache withVersion(long version) {
+ return new Cache(map, size, version, sizeLimit);
+ }
+ }
+
private record CacheEntryPresent(JDataVersionedWrapper value,
int size) implements CacheEntry, Data {
}
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/LmdbObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/LmdbObjectPersistentStore.java
index ac06ef7e..353ce333 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/LmdbObjectPersistentStore.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/LmdbObjectPersistentStore.java
@@ -2,7 +2,6 @@ package com.usatiuk.objects.stores;
import com.google.protobuf.ByteString;
import com.google.protobuf.UnsafeByteOperations;
-import com.usatiuk.utils.RefcountedCloseable;
import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.JObjectKeyMax;
import com.usatiuk.objects.JObjectKeyMin;
@@ -11,6 +10,7 @@ import com.usatiuk.objects.iterators.IteratorStart;
import com.usatiuk.objects.iterators.KeyPredicateKvIterator;
import com.usatiuk.objects.iterators.ReversibleKvIterator;
import com.usatiuk.objects.snapshot.Snapshot;
+import com.usatiuk.utils.RefcountedCloseable;
import io.quarkus.arc.properties.IfBuildProperty;
import io.quarkus.logging.Log;
import io.quarkus.runtime.ShutdownEvent;
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/MemoryObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/MemoryObjectPersistentStore.java
index de38845c..8e3af9ba 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/MemoryObjectPersistentStore.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/MemoryObjectPersistentStore.java
@@ -2,7 +2,6 @@ package com.usatiuk.objects.stores;
import com.google.protobuf.ByteString;
import com.usatiuk.objects.JObjectKey;
-import com.usatiuk.objects.JObjectKeyImpl;
import com.usatiuk.objects.iterators.CloseableKvIterator;
import com.usatiuk.objects.iterators.IteratorStart;
import com.usatiuk.objects.iterators.NavigableMapKvIterator;
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/ObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/ObjectPersistentStore.java
index 6cb8f0f6..b84adb94 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/ObjectPersistentStore.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/ObjectPersistentStore.java
@@ -2,13 +2,10 @@ package com.usatiuk.objects.stores;
import com.google.protobuf.ByteString;
import com.usatiuk.objects.JObjectKey;
-import com.usatiuk.objects.iterators.CloseableKvIterator;
-import com.usatiuk.objects.iterators.IteratorStart;
import com.usatiuk.objects.snapshot.Snapshot;
import javax.annotation.Nonnull;
import java.util.Optional;
-import java.util.function.Consumer;
// Persistent storage of objects
// All changes are written as sequential transactions
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWrite.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWrite.java
index 42dd0cee..b5b8708a 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWrite.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/PendingWrite.java
@@ -3,5 +3,6 @@ package com.usatiuk.objects.stores;
import com.usatiuk.objects.JDataVersionedWrapper;
import com.usatiuk.objects.iterators.Data;
-public record PendingWrite(JDataVersionedWrapper value, long bundleId) implements PendingWriteEntry, Data {
+public record PendingWrite(JDataVersionedWrapper value,
+ long bundleId) implements PendingWriteEntry, Data {
}
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/WritebackObjectPersistentStore.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/WritebackObjectPersistentStore.java
index b0e205a9..41a449e9 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/WritebackObjectPersistentStore.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/stores/WritebackObjectPersistentStore.java
@@ -32,19 +32,10 @@ import java.util.function.Consumer;
public class WritebackObjectPersistentStore {
private final LinkedList _pendingBundles = new LinkedList<>();
private final LinkedHashMap _notFlushedBundles = new LinkedHashMap<>();
-
- private record PendingWriteData(TreePMap pendingWrites,
- long lastFlushedId,
- long lastCommittedId) {
- }
-
private final AtomicReference _pendingWrites = new AtomicReference<>(null);
-
private final Object _flushWaitSynchronizer = new Object();
-
private final AtomicLong _lastWrittenId = new AtomicLong(-1);
private final AtomicLong _lastCommittedId = new AtomicLong();
-
private final AtomicLong _waitedTotal = new AtomicLong(0);
@Inject
CachingObjectPersistentStore cachedStore;
@@ -351,7 +342,7 @@ public class WritebackObjectPersistentStore {
@Override
public CloseableKvIterator getIterator(IteratorStart start, JObjectKey key) {
- return TombstoneMergingKvIterator.of("writeback-ps", start, key,
+ return TombstoneMergingKvIterator.of("writeback-ps", start, key,
(tS, tK) -> new NavigableMapKvIterator<>(_pendingWrites, tS, tK),
(tS, tK) -> (CloseableKvIterator>) (CloseableKvIterator) _cache.getIterator(tS, tK));
}
@@ -393,6 +384,11 @@ public class WritebackObjectPersistentStore {
public interface VerboseReadResult {
}
+ private record PendingWriteData(TreePMap pendingWrites,
+ long lastFlushedId,
+ long lastCommittedId) {
+ }
+
private static class TxBundle {
private final LinkedHashMap _entries = new LinkedHashMap<>();
private final ArrayList _callbacks = new ArrayList<>();
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/CurrentTransaction.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/CurrentTransaction.java
index 2e00974a..c5f01714 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/CurrentTransaction.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/CurrentTransaction.java
@@ -4,7 +4,6 @@ import com.usatiuk.objects.JData;
import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.iterators.CloseableKvIterator;
import com.usatiuk.objects.iterators.IteratorStart;
-import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
diff --git a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/JObjectManager.java b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/JObjectManager.java
index c4b58680..0093ab3f 100644
--- a/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/JObjectManager.java
+++ b/dhfs-parent/objects/src/main/java/com/usatiuk/objects/transaction/JObjectManager.java
@@ -1,11 +1,11 @@
package com.usatiuk.objects.transaction;
-import com.usatiuk.utils.AutoCloseableNoThrow;
import com.usatiuk.objects.JData;
import com.usatiuk.objects.JDataVersionedWrapper;
import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.snapshot.Snapshot;
import com.usatiuk.objects.stores.WritebackObjectPersistentStore;
+import com.usatiuk.utils.AutoCloseableNoThrow;
import io.quarkus.logging.Log;
import io.quarkus.runtime.StartupEvent;
import jakarta.annotation.Priority;
@@ -23,12 +23,6 @@ import java.util.stream.Stream;
@ApplicationScoped
public class JObjectManager {
private final List _preCommitTxHooks;
-
- private record CommitHookIterationData(PreCommitTxHook hook,
- Map> lastWrites,
- Map> pendingWrites) {
- }
-
@Inject
WritebackObjectPersistentStore writebackObjectPersistentStore;
@Inject
@@ -36,7 +30,6 @@ public class JObjectManager {
@Inject
LockManager lockManager;
private boolean _ready = false;
-
JObjectManager(Instance preCommitTxHooks) {
_preCommitTxHooks = List.copyOf(preCommitTxHooks.stream().sorted(Comparator.comparingInt(PreCommitTxHook::getPriority)).toList());
Log.debugv("Pre-commit hooks: {0}", String.join("->", _preCommitTxHooks.stream().map(Objects::toString).toList()));
@@ -277,4 +270,9 @@ public class JObjectManager {
});
tx.close();
}
+
+ private record CommitHookIterationData(PreCommitTxHook hook,
+ Map> lastWrites,
+ Map> pendingWrites) {
+ }
}
\ No newline at end of file
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 a3aeeaa7..7aad9dd3 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
@@ -1,7 +1,6 @@
package com.usatiuk.objects.transaction;
import io.quarkus.logging.Log;
-import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import org.apache.commons.lang3.tuple.Pair;
diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsIterateAllTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsIterateAllTest.java
index e9f6257d..9a49d067 100644
--- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsIterateAllTest.java
+++ b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/ObjectsIterateAllTest.java
@@ -7,11 +7,8 @@ import io.quarkus.test.junit.QuarkusTest;
import io.quarkus.test.junit.TestProfile;
import jakarta.inject.Inject;
import org.apache.commons.lang3.tuple.Pair;
-import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-import java.util.List;
-import java.util.Map;
import java.util.stream.Stream;
class ObjectsIterateAllTestProfiles {
diff --git a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/MergingKvIteratorPbtTest.java b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/MergingKvIteratorPbtTest.java
index f756cb67..3a66148f 100644
--- a/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/MergingKvIteratorPbtTest.java
+++ b/dhfs-parent/objects/src/test/java/com/usatiuk/objects/iterators/MergingKvIteratorPbtTest.java
@@ -6,9 +6,42 @@ import net.jqwik.api.state.ActionChain;
import org.apache.commons.lang3.tuple.Pair;
import org.junit.jupiter.api.Assertions;
-import java.util.*;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
public class MergingKvIteratorPbtTest {
+ @Property
+ public void checkMergingIterator(@ForAll("actions") ActionChain actions) {
+ actions.run();
+ }
+
+ @Provide
+ Arbitrary> actions(@ForAll("lists") List>> list,
+ @ForAll IteratorStart iteratorStart, @ForAll("startKey") Integer startKey) {
+ return ActionChain.startWith(() -> new MergingIteratorModel(list, iteratorStart, startKey))
+ .withAction(new NextAction())
+ .withAction(new PeekNextKeyAction())
+ .withAction(new SkipAction())
+ .withAction(new PeekPrevKeyAction())
+ .withAction(new SkipPrevAction())
+ .withAction(new PrevAction())
+ .withAction(new HasNextAction())
+ .withAction(new HasPrevAction());
+ }
+
+ @Provide
+ Arbitrary>>> lists() {
+ return Arbitraries.entries(Arbitraries.integers().between(-50, 50), Arbitraries.integers().between(-50, 50))
+ .list().uniqueElements(Map.Entry::getKey).ofMinSize(0).ofMaxSize(20)
+ .list().ofMinSize(1).ofMaxSize(5);
+ }
+
+ @Provide
+ Arbitrary startKey() {
+ return Arbitraries.integers().between(-51, 51);
+ }
+
static class MergingIteratorModel implements CloseableKvIterator {
private final CloseableKvIterator mergedIterator;
private final CloseableKvIterator mergingIterator;
@@ -228,35 +261,4 @@ public class MergingKvIteratorPbtTest {
return "Has prev key";
}
}
-
- @Property
- public void checkMergingIterator(@ForAll("actions") ActionChain actions) {
- actions.run();
- }
-
- @Provide
- Arbitrary> actions(@ForAll("lists") List>> list,
- @ForAll IteratorStart iteratorStart, @ForAll("startKey") Integer startKey) {
- return ActionChain.startWith(() -> new MergingIteratorModel(list, iteratorStart, startKey))
- .withAction(new NextAction())
- .withAction(new PeekNextKeyAction())
- .withAction(new SkipAction())
- .withAction(new PeekPrevKeyAction())
- .withAction(new SkipPrevAction())
- .withAction(new PrevAction())
- .withAction(new HasNextAction())
- .withAction(new HasPrevAction());
- }
-
- @Provide
- Arbitrary>>> lists() {
- return Arbitraries.entries(Arbitraries.integers().between(-50, 50), Arbitraries.integers().between(-50, 50))
- .list().uniqueElements(Map.Entry::getKey).ofMinSize(0).ofMaxSize(20)
- .list().ofMinSize(1).ofMaxSize(5);
- }
-
- @Provide
- Arbitrary startKey() {
- return Arbitraries.integers().between(-51, 51);
- }
}
\ No newline at end of file
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/JObjectKeyProtoSerializer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/JObjectKeyProtoSerializer.java
index 5a0c85df..3e00a91e 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/JObjectKeyProtoSerializer.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/JObjectKeyProtoSerializer.java
@@ -1,7 +1,7 @@
package com.usatiuk.dhfs;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.persistence.JObjectKeyP;
+import com.usatiuk.objects.JObjectKey;
import jakarta.inject.Singleton;
@Singleton
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/TemporaryOpSerializer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/TemporaryOpSerializer.java
index 64d1d4f6..4d7d0ee4 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/TemporaryOpSerializer.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/TemporaryOpSerializer.java
@@ -1,7 +1,7 @@
package com.usatiuk.dhfs;
-import com.usatiuk.dhfs.repository.OpP;
import com.usatiuk.dhfs.invalidation.Op;
+import com.usatiuk.dhfs.repository.OpP;
import com.usatiuk.utils.SerializationHelper;
import jakarta.inject.Singleton;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncTxHook.java
index 117d7820..47096849 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncTxHook.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/autosync/AutosyncTxHook.java
@@ -1,9 +1,9 @@
package com.usatiuk.dhfs.autosync;
+import com.usatiuk.dhfs.invalidation.InvalidationQueueService;
+import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta;
import com.usatiuk.objects.JData;
import com.usatiuk.objects.JObjectKey;
-import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta;
-import com.usatiuk.dhfs.invalidation.InvalidationQueueService;
import com.usatiuk.objects.transaction.PreCommitTxHook;
import com.usatiuk.objects.transaction.Transaction;
import jakarta.inject.Inject;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.java
index b3431c35..affb19f8 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/DeferredInvalidationQueueService.java
@@ -1,7 +1,7 @@
package com.usatiuk.dhfs.invalidation;
-import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.peersync.PeerConnectedEventListener;
+import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.peersync.PeerManager;
import com.usatiuk.utils.SerializationHelper;
import io.quarkus.logging.Log;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/IndexUpdateOp.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/IndexUpdateOp.java
index 74b128fc..9688d247 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/IndexUpdateOp.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/IndexUpdateOp.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfs.invalidation;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.remoteobj.JDataRemoteDto;
+import com.usatiuk.objects.JObjectKey;
import org.pcollections.PMap;
import java.util.Collection;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.java
index 78b0d104..3fd2aee9 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueEntry.java
@@ -1,7 +1,7 @@
package com.usatiuk.dhfs.invalidation;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.peersync.PeerId;
+import com.usatiuk.objects.JObjectKey;
import java.io.Serializable;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueService.java
index 9934f844..8d635e4c 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueService.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/InvalidationQueueService.java
@@ -1,17 +1,17 @@
package com.usatiuk.dhfs.invalidation;
import com.usatiuk.dhfs.peersync.PeerId;
+import com.usatiuk.dhfs.peersync.PeerInfoService;
import com.usatiuk.dhfs.peersync.PeerManager;
import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
import com.usatiuk.dhfs.rpc.RemoteObjectServiceClient;
-import com.usatiuk.dhfs.peersync.PeerInfoService;
-import com.usatiuk.utils.AutoCloseableNoThrow;
-import com.usatiuk.utils.DataLocker;
-import com.usatiuk.utils.HashSetDelayedBlockingQueue;
import com.usatiuk.objects.JData;
import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.transaction.Transaction;
import com.usatiuk.objects.transaction.TransactionManager;
+import com.usatiuk.utils.AutoCloseableNoThrow;
+import com.usatiuk.utils.DataLocker;
+import com.usatiuk.utils.HashSetDelayedBlockingQueue;
import io.quarkus.logging.Log;
import io.quarkus.runtime.ShutdownEvent;
import io.quarkus.runtime.StartupEvent;
@@ -35,6 +35,7 @@ import java.util.concurrent.atomic.AtomicReference;
public class InvalidationQueueService {
private final HashSetDelayedBlockingQueue _queue;
private final AtomicReference> _toAllQueue = new AtomicReference<>(new ConcurrentHashSet<>());
+ private final DataLocker _locker = new DataLocker();
@Inject
PeerManager remoteHostManager;
@Inject
@@ -45,13 +46,10 @@ public class InvalidationQueueService {
TransactionManager txm;
@Inject
Transaction curTx;
-
@ConfigProperty(name = "dhfs.objects.invalidation.threads")
int threads;
@Inject
PersistentPeerDataService persistentPeerDataService;
-
- private final DataLocker _locker = new DataLocker();
@Inject
RemoteObjectServiceClient remoteObjectServiceClient;
@Inject
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandler.java
index 15371976..ecc0f13e 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandler.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/OpHandler.java
@@ -1,9 +1,9 @@
package com.usatiuk.dhfs.invalidation;
-import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeManager;
import com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreeOpWrapper;
import com.usatiuk.dhfs.jkleppmanntree.JKleppmannTreePeriodicPushOp;
+import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.objects.transaction.Transaction;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.java
index f79b2a77..e470e07b 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/invalidation/RemoteObjectMetaOpExtractor.java
@@ -1,10 +1,10 @@
package com.usatiuk.dhfs.invalidation;
import com.usatiuk.dhfs.peersync.PeerId;
-import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta;
-import com.usatiuk.dhfs.remoteobj.RemoteTransaction;
import com.usatiuk.dhfs.remoteobj.JDataRemoteDto;
import com.usatiuk.dhfs.remoteobj.JDataRemotePush;
+import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta;
+import com.usatiuk.dhfs.remoteobj.RemoteTransaction;
import com.usatiuk.dhfs.syncmap.DtoMapperService;
import com.usatiuk.objects.transaction.Transaction;
import com.usatiuk.objects.transaction.TransactionManager;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.java
index 50425a4a..153ab400 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeerInterface.java
@@ -1,9 +1,9 @@
package com.usatiuk.dhfs.jkleppmanntree;
import com.usatiuk.dhfs.peersync.PeerId;
-import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
import com.usatiuk.dhfs.peersync.PeerInfo;
import com.usatiuk.dhfs.peersync.PeerInfoService;
+import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
import com.usatiuk.kleppmanntree.PeerInterface;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.java
index c56d43cc..fc6e9c8e 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/JKleppmannTreePeriodicPushOp.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfs.jkleppmanntree;
-import com.usatiuk.objects.JObjectKey;
-import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.invalidation.Op;
+import com.usatiuk.dhfs.peersync.PeerId;
+import com.usatiuk.objects.JObjectKey;
import java.io.Serializable;
import java.util.Collection;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.java
index 8d2d07e7..c7186e75 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jkleppmanntree/structs/JKleppmannTreePersistentData.java
@@ -1,12 +1,12 @@
package com.usatiuk.dhfs.jkleppmanntree.structs;
+import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.refcount.JDataRef;
import com.usatiuk.dhfs.refcount.JDataRefcounted;
-import com.usatiuk.objects.JObjectKey;
-import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.kleppmanntree.CombinedTimestamp;
import com.usatiuk.kleppmanntree.LogRecord;
import com.usatiuk.kleppmanntree.OpMove;
+import com.usatiuk.objects.JObjectKey;
import org.pcollections.PCollection;
import org.pcollections.PMap;
import org.pcollections.PSortedMap;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHelper.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHelper.java
index 55e2b46b..e6d93992 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHelper.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapHelper.java
@@ -5,7 +5,6 @@ import com.usatiuk.objects.iterators.CloseableKvIterator;
import com.usatiuk.objects.iterators.IteratorStart;
import com.usatiuk.objects.transaction.Transaction;
import io.quarkus.logging.Log;
-import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.java
index 2fd327d6..39b82ba1 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/jmap/JMapRefcounterTxHook.java
@@ -1,9 +1,9 @@
package com.usatiuk.dhfs.jmap;
-import com.usatiuk.objects.JData;
import com.usatiuk.dhfs.refcount.JDataRefcounted;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta;
+import com.usatiuk.objects.JData;
+import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.transaction.PreCommitTxHook;
import com.usatiuk.objects.transaction.Transaction;
import io.quarkus.logging.Log;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.java
index c22fdb55..9e79a923 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryBroadcaster.java
@@ -1,7 +1,7 @@
package com.usatiuk.dhfs.peerdiscovery.local;
-import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
import com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo;
+import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
import io.quarkus.arc.properties.IfBuildProperty;
import io.quarkus.logging.Log;
import io.quarkus.runtime.ShutdownEvent;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.java
index dca99631..aaec3d95 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peerdiscovery/local/LocalPeerDiscoveryClient.java
@@ -1,11 +1,11 @@
package com.usatiuk.dhfs.peerdiscovery.local;
import com.google.protobuf.InvalidProtocolBufferException;
-import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.peerdiscovery.IpPeerAddress;
import com.usatiuk.dhfs.peerdiscovery.PeerAddressType;
import com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory;
import com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryInfo;
+import com.usatiuk.dhfs.peersync.PeerId;
import io.quarkus.arc.properties.IfBuildProperty;
import io.quarkus.logging.Log;
import io.quarkus.runtime.ShutdownEvent;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/InitialSyncProcessor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/InitialSyncProcessor.java
index 055319c9..6b7e1fb3 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/InitialSyncProcessor.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/InitialSyncProcessor.java
@@ -5,5 +5,6 @@ import com.usatiuk.objects.JObjectKey;
public interface InitialSyncProcessor {
void prepareForInitialSync(PeerId from, JObjectKey key);
+
void handleCrash(JObjectKey key);
}
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfo.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfo.java
index e4f5f526..1eca8b79 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfo.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfo.java
@@ -1,11 +1,11 @@
package com.usatiuk.dhfs.peersync;
import com.google.protobuf.ByteString;
-import com.usatiuk.dhfs.remoteobj.JDataRemote;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.peertrust.CertificateTools;
+import com.usatiuk.dhfs.remoteobj.JDataRemote;
import com.usatiuk.dhfs.remoteobj.JDataRemoteDto;
import com.usatiuk.dhfs.remoteobj.JDataRemotePush;
+import com.usatiuk.objects.JObjectKey;
import java.security.cert.X509Certificate;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.java
index fc990e35..96001d59 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerInfoSyncHandler.java
@@ -1,10 +1,6 @@
package com.usatiuk.dhfs.peersync;
-import com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper;
-import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta;
-import com.usatiuk.dhfs.remoteobj.RemoteTransaction;
-import com.usatiuk.dhfs.remoteobj.ObjSyncHandler;
-import com.usatiuk.dhfs.remoteobj.SyncHelper;
+import com.usatiuk.dhfs.remoteobj.*;
import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.transaction.Transaction;
import io.grpc.Status;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerManager.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerManager.java
index 628c3715..a0788716 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerManager.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PeerManager.java
@@ -4,9 +4,9 @@ import com.usatiuk.dhfs.peerdiscovery.PeerAddress;
import com.usatiuk.dhfs.peerdiscovery.PeerDiscoveryDirectory;
import com.usatiuk.dhfs.peersync.api.PeerSyncApiClientDynamic;
import com.usatiuk.dhfs.peertrust.PeerTrustManager;
+import com.usatiuk.dhfs.remoteobj.SyncHandler;
import com.usatiuk.dhfs.repository.PingRequest;
import com.usatiuk.dhfs.rpc.RpcClientFactory;
-import com.usatiuk.dhfs.remoteobj.SyncHandler;
import com.usatiuk.objects.transaction.Transaction;
import com.usatiuk.objects.transaction.TransactionManager;
import io.quarkus.logging.Log;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentPeerDataService.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentPeerDataService.java
index de3d3277..53da2a6c 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentPeerDataService.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/PersistentPeerDataService.java
@@ -2,14 +2,14 @@ package com.usatiuk.dhfs.peersync;
import com.google.protobuf.ByteString;
import com.usatiuk.dhfs.ShutdownChecker;
-import com.usatiuk.dhfs.peertrust.CertificateTools;
import com.usatiuk.dhfs.peerdiscovery.IpPeerAddress;
import com.usatiuk.dhfs.peerdiscovery.PeerAddressType;
+import com.usatiuk.dhfs.peertrust.CertificateTools;
import com.usatiuk.dhfs.peertrust.PeerTrustManager;
import com.usatiuk.dhfs.rpc.RpcClientFactory;
-import com.usatiuk.utils.SerializationHelper;
import com.usatiuk.objects.transaction.Transaction;
import com.usatiuk.objects.transaction.TransactionManager;
+import com.usatiuk.utils.SerializationHelper;
import io.quarkus.logging.Log;
import io.quarkus.runtime.StartupEvent;
import jakarta.annotation.Priority;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.java
index 7bc4e1fa..f52cb286 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peersync/structs/JKleppmannTreeNodeMetaPeer.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfs.peersync.structs;
-import com.usatiuk.objects.JObjectKey;
-import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNodeMeta;
+import com.usatiuk.dhfs.peersync.PeerId;
+import com.usatiuk.objects.JObjectKey;
import java.util.Collection;
import java.util.List;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.java
index 1eb21dd8..37e4c9bd 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/peertrust/PeerInfoCertUpdateTxHook.java
@@ -1,14 +1,14 @@
package com.usatiuk.dhfs.peertrust;
-import com.usatiuk.objects.JData;
-import com.usatiuk.objects.JObjectKey;
-import com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper;
-import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode;
-import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
import com.usatiuk.dhfs.invalidation.InvalidationQueueService;
+import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreeNode;
import com.usatiuk.dhfs.peersync.PeerInfo;
import com.usatiuk.dhfs.peersync.PeerInfoService;
+import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
import com.usatiuk.dhfs.peersync.structs.JKleppmannTreeNodeMetaPeer;
+import com.usatiuk.dhfs.remoteobj.RemoteObjectDataWrapper;
+import com.usatiuk.objects.JData;
+import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.transaction.PreCommitTxHook;
import com.usatiuk.objects.transaction.Transaction;
import io.quarkus.logging.Log;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.java
index d3ae1fcf..2d11cb6c 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/ObjSyncHandler.java
@@ -1,7 +1,7 @@
package com.usatiuk.dhfs.remoteobj;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.peersync.PeerId;
+import com.usatiuk.objects.JObjectKey;
import org.pcollections.PMap;
import javax.annotation.Nullable;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.java
index afda6b90..7f2b0176 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjPusherTxHook.java
@@ -1,9 +1,9 @@
package com.usatiuk.dhfs.remoteobj;
+import com.usatiuk.dhfs.invalidation.InvalidationQueueService;
import com.usatiuk.dhfs.jkleppmanntree.structs.JKleppmannTreePersistentData;
import com.usatiuk.objects.JData;
import com.usatiuk.objects.JObjectKey;
-import com.usatiuk.dhfs.invalidation.InvalidationQueueService;
import com.usatiuk.objects.transaction.PreCommitTxHook;
import com.usatiuk.objects.transaction.Transaction;
import jakarta.inject.Inject;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.java
index 96c76470..b3555794 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectDeleter.java
@@ -1,12 +1,12 @@
package com.usatiuk.dhfs.remoteobj;
-import com.usatiuk.dhfs.refcount.JDataRefcounted;
-import com.usatiuk.dhfs.peersync.PeerId;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.autosync.AutosyncProcessor;
-import com.usatiuk.dhfs.rpc.RemoteObjectServiceClient;
+import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.peersync.PeerInfo;
import com.usatiuk.dhfs.peersync.PeerInfoService;
+import com.usatiuk.dhfs.refcount.JDataRefcounted;
+import com.usatiuk.dhfs.rpc.RemoteObjectServiceClient;
+import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.transaction.Transaction;
import com.usatiuk.objects.transaction.TransactionManager;
import com.usatiuk.utils.HashSetDelayedBlockingQueue;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.java
index 4a9ad5bf..4a0e2bdb 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectInitialSyncProcessor.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfs.remoteobj;
-import com.usatiuk.dhfs.peersync.PeerId;
-import com.usatiuk.dhfs.peersync.InitialSyncProcessor;
import com.usatiuk.dhfs.invalidation.InvalidationQueueService;
+import com.usatiuk.dhfs.peersync.InitialSyncProcessor;
+import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.peersync.PeerInfoService;
import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.transaction.Transaction;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.java
index 13ce4dc9..10242b49 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteObjectMeta.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfs.remoteobj;
+import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.refcount.JDataRef;
import com.usatiuk.dhfs.refcount.JDataRefcounted;
-import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.objects.JObjectKey;
import org.pcollections.*;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteTransaction.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteTransaction.java
index 2a594555..50f5f694 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteTransaction.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/RemoteTransaction.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfs.remoteobj;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
import com.usatiuk.dhfs.rpc.RemoteObjectServiceClient;
+import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.transaction.LockingStrategy;
import com.usatiuk.objects.transaction.Transaction;
import io.quarkus.logging.Log;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandler.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandler.java
index c50dfaa5..aaf6ab8e 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandler.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/remoteobj/SyncHandler.java
@@ -1,10 +1,10 @@
package com.usatiuk.dhfs.remoteobj;
-import com.usatiuk.dhfs.peersync.InitialSyncProcessor;
-import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
-import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.ShutdownChecker;
import com.usatiuk.dhfs.invalidation.InvalidationQueueService;
+import com.usatiuk.dhfs.peersync.InitialSyncProcessor;
+import com.usatiuk.dhfs.peersync.PeerId;
+import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
import com.usatiuk.dhfs.rpc.RemoteObjectServiceClient;
import com.usatiuk.objects.JData;
import com.usatiuk.objects.JObjectKey;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.java
index 8677187e..de0413a7 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceClient.java
@@ -1,6 +1,8 @@
package com.usatiuk.dhfs.rpc;
import com.usatiuk.dhfs.ProtoSerializer;
+import com.usatiuk.dhfs.invalidation.InvalidationQueueService;
+import com.usatiuk.dhfs.invalidation.Op;
import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.peersync.PeerManager;
import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
@@ -9,8 +11,6 @@ import com.usatiuk.dhfs.refcount.JDataRef;
import com.usatiuk.dhfs.remoteobj.ReceivedObject;
import com.usatiuk.dhfs.remoteobj.RemoteObjectMeta;
import com.usatiuk.dhfs.remoteobj.RemoteTransaction;
-import com.usatiuk.dhfs.invalidation.InvalidationQueueService;
-import com.usatiuk.dhfs.invalidation.Op;
import com.usatiuk.dhfs.remoteobj.SyncHandler;
import com.usatiuk.dhfs.repository.*;
import com.usatiuk.objects.JObjectKey;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.java
index 7dd207f4..9d14455c 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RemoteObjectServiceServerImpl.java
@@ -1,13 +1,13 @@
package com.usatiuk.dhfs.rpc;
-import com.usatiuk.dhfs.*;
+import com.usatiuk.dhfs.ProtoSerializer;
import com.usatiuk.dhfs.autosync.AutosyncProcessor;
+import com.usatiuk.dhfs.invalidation.Op;
+import com.usatiuk.dhfs.invalidation.OpHandler;
import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.peersync.PeerManager;
import com.usatiuk.dhfs.persistence.JObjectKeyP;
import com.usatiuk.dhfs.remoteobj.*;
-import com.usatiuk.dhfs.invalidation.Op;
-import com.usatiuk.dhfs.invalidation.OpHandler;
import com.usatiuk.dhfs.repository.*;
import com.usatiuk.dhfs.syncmap.DtoMapperService;
import com.usatiuk.objects.JObjectKey;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcClientFactory.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcClientFactory.java
index 4d61bb4e..aedeef61 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcClientFactory.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/RpcClientFactory.java
@@ -1,9 +1,9 @@
package com.usatiuk.dhfs.rpc;
-import com.usatiuk.dhfs.peersync.PeerId;
-import com.usatiuk.dhfs.peersync.PeerDisconnectedEventListener;
import com.usatiuk.dhfs.peerdiscovery.IpPeerAddress;
import com.usatiuk.dhfs.peerdiscovery.PeerAddress;
+import com.usatiuk.dhfs.peersync.PeerDisconnectedEventListener;
+import com.usatiuk.dhfs.peersync.PeerId;
import com.usatiuk.dhfs.peersync.PeerManager;
import com.usatiuk.dhfs.repository.DhfsObjectSyncGrpcGrpc;
import io.grpc.ManagedChannel;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.java
index 5793f223..cbc47498 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/rpc/TemporaryReceivedObjectSerializer.java
@@ -2,11 +2,11 @@ package com.usatiuk.dhfs.rpc;
import com.usatiuk.dhfs.ProtoSerializer;
import com.usatiuk.dhfs.peersync.PeerId;
-import com.usatiuk.dhfs.remoteobj.JDataRemoteDto;
-import com.usatiuk.dhfs.remoteobj.ReceivedObject;
import com.usatiuk.dhfs.persistence.JDataRemoteDtoP;
import com.usatiuk.dhfs.persistence.JObjectKeyP;
import com.usatiuk.dhfs.persistence.PeerIdP;
+import com.usatiuk.dhfs.remoteobj.JDataRemoteDto;
+import com.usatiuk.dhfs.remoteobj.ReceivedObject;
import com.usatiuk.dhfs.repository.GetObjectReply;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerManagementApi.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerManagementApi.java
index 46cf1447..66a60915 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerManagementApi.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PeerManagementApi.java
@@ -1,9 +1,9 @@
package com.usatiuk.dhfs.webapi;
import com.usatiuk.dhfs.peersync.PeerId;
+import com.usatiuk.dhfs.peersync.PeerInfoService;
import com.usatiuk.dhfs.peersync.PeerManager;
import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
-import com.usatiuk.dhfs.peersync.PeerInfoService;
import jakarta.inject.Inject;
import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.GET;
diff --git a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.java b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.java
index 95fce2ab..40555ae4 100644
--- a/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.java
+++ b/dhfs-parent/sync-base/src/main/java/com/usatiuk/dhfs/webapi/PersistentPeerAddressApi.java
@@ -1,10 +1,10 @@
package com.usatiuk.dhfs.webapi;
+import com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper;
import com.usatiuk.dhfs.peersync.PeerId;
+import com.usatiuk.dhfs.peersync.PeerInfoService;
import com.usatiuk.dhfs.peersync.PeerManager;
import com.usatiuk.dhfs.peersync.PersistentPeerDataService;
-import com.usatiuk.dhfs.peerdiscovery.PeerAddrStringHelper;
-import com.usatiuk.dhfs.peersync.PeerInfoService;
import jakarta.inject.Inject;
import jakarta.ws.rs.*;
diff --git a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/RefcounterTest.java b/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/RefcounterTest.java
index af3d4da6..b48b8f93 100644
--- a/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/RefcounterTest.java
+++ b/dhfs-parent/sync-base/src/test/java/com/usatiuk/dhfs/RefcounterTest.java
@@ -1,8 +1,8 @@
package com.usatiuk.dhfs;
import com.usatiuk.dhfs.refcount.JDataRef;
-import com.usatiuk.objects.JObjectKey;
import com.usatiuk.dhfs.testobjs.TestRefcount;
+import com.usatiuk.objects.JObjectKey;
import com.usatiuk.objects.transaction.Transaction;
import com.usatiuk.objects.transaction.TransactionManager;
import io.quarkus.test.junit.QuarkusTest;