diff --git a/pom.xml b/pom.xml
index 5d73f68..c5e0f4f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,8 +30,6 @@
UTF-8
- 11
- 11
@@ -55,9 +53,10 @@
test
- org.projectlombok
- lombok
- 1.18.20
+ io.soabase.record-builder
+ record-builder-core
+ 1.19
+ provided
org.jetbrains
@@ -88,21 +87,24 @@
- src/main/lombok
- src/test/lombok
+ org.apache.maven.plugins
maven-compiler-plugin
- 3.8.0
-
+ 3.8.1
+
+ 16
- org.projectlombok
- lombok
- 1.18.20
+ io.soabase.record-builder
+ record-builder-processor
+ 1.19
+
+ io.soabase.recordbuilder.processor.RecordBuilderProcessor
+
@@ -118,10 +120,6 @@
maven-resources-plugin
3.0.2
-
- maven-compiler-plugin
- 3.8.0
-
maven-surefire-plugin
2.22.1
diff --git a/src/main/lombok/org/warp/filesponge/DataBlock.java b/src/main/java/org/warp/filesponge/DataBlock.java
similarity index 100%
rename from src/main/lombok/org/warp/filesponge/DataBlock.java
rename to src/main/java/org/warp/filesponge/DataBlock.java
diff --git a/src/main/lombok/org/warp/filesponge/DiskCache.java b/src/main/java/org/warp/filesponge/DiskCache.java
similarity index 92%
rename from src/main/lombok/org/warp/filesponge/DiskCache.java
rename to src/main/java/org/warp/filesponge/DiskCache.java
index 1bebe4a..77b325a 100644
--- a/src/main/lombok/org/warp/filesponge/DiskCache.java
+++ b/src/main/java/org/warp/filesponge/DiskCache.java
@@ -32,14 +32,11 @@ import it.cavallium.dbengine.database.LLDictionaryResultType;
import it.cavallium.dbengine.database.LLKeyValueDatabase;
import it.cavallium.dbengine.database.UpdateMode;
import it.cavallium.dbengine.database.UpdateReturnMode;
-import it.cavallium.dbengine.database.disk.LLLocalDictionary.ReleasableSlice;
import it.unimi.dsi.fastutil.booleans.BooleanArrayList;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
import org.jetbrains.annotations.Nullable;
import org.warp.filesponge.DiskMetadata.DiskMetadataSerializer;
import reactor.core.publisher.Flux;
@@ -86,8 +83,8 @@ public class DiskCache implements URLsDiskHandler, URLsWriter {
return oldValue;
} else {
return diskMetadataSerializer.serialize(new DiskMetadata(
- metadata.getSize(),
- BooleanArrayList.wrap(new boolean[DiskMetadata.getBlocksCount(metadata.getSize(), BLOCK_SIZE)])
+ metadata.size(),
+ BooleanArrayList.wrap(new boolean[DiskMetadata.getBlocksCount(metadata.size(), BLOCK_SIZE)])
));
}
}, UpdateReturnMode.NOTHING),
@@ -118,10 +115,10 @@ public class DiskCache implements URLsDiskHandler, URLsWriter {
@Nullable DiskMetadata result;
if (prevBytes != null) {
DiskMetadata prevMeta = diskMetadataSerializer.deserialize(prevBytes);
- if (!prevMeta.getDownloadedBlocks().getBoolean(dataBlock.getId())) {
- BooleanArrayList bal = prevMeta.getDownloadedBlocks().clone();
+ if (!prevMeta.downloadedBlocks().getBoolean(dataBlock.getId())) {
+ BooleanArrayList bal = prevMeta.downloadedBlocks().clone();
bal.set(dataBlock.getId(), true);
- result = new DiskMetadata(prevMeta.getSize(), bal);
+ result = new DiskMetadata(prevMeta.size(), bal);
} else {
result = prevMeta;
}
@@ -144,7 +141,7 @@ public class DiskCache implements URLsDiskHandler, URLsWriter {
public Flux requestContent(URL url) {
return requestDiskMetadata(url)
.filter(DiskMetadata::isDownloadedFully)
- .flatMapMany(meta -> Flux.fromIterable(meta.getDownloadedBlocks())
+ .flatMapMany(meta -> Flux.fromIterable(meta.downloadedBlocks())
.index()
// Get only downloaded blocks
.filter(Tuple2::getT2)
@@ -164,8 +161,8 @@ public class DiskCache implements URLsDiskHandler, URLsWriter {
try {
int blockOffset = getBlockOffset(blockId);
int blockLength = data.readableBytes();
- if (blockOffset + blockLength >= meta.getSize()) {
- if (blockOffset + blockLength > meta.getSize()) {
+ if (blockOffset + blockLength >= meta.size()) {
+ if (blockOffset + blockLength > meta.size()) {
throw new IllegalStateException("Overflowed data size");
}
} else {
diff --git a/src/main/lombok/org/warp/filesponge/DiskMetadata.java b/src/main/java/org/warp/filesponge/DiskMetadata.java
similarity index 75%
rename from src/main/lombok/org/warp/filesponge/DiskMetadata.java
rename to src/main/java/org/warp/filesponge/DiskMetadata.java
index 24ecf9e..db1a21a 100644
--- a/src/main/lombok/org/warp/filesponge/DiskMetadata.java
+++ b/src/main/java/org/warp/filesponge/DiskMetadata.java
@@ -29,39 +29,30 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
-import lombok.Data;
-import lombok.SneakyThrows;
+import java.io.IOException;
+import org.apache.commons.lang3.SerializationException;
import org.jetbrains.annotations.NotNull;
-import org.warp.filesponge.DiskMetadata.DiskMetadataSerializer;
-@Data
-public class DiskMetadata {
-
- /**
- * -1 = unknown size
- */
- private final int size;
-
- private final BooleanArrayList downloadedBlocks;
-
- private Boolean downloadedFully;
+/**
+ * size -1 = unknown size
+ */
+public record DiskMetadata(int size, BooleanArrayList downloadedBlocks) {
public boolean isDownloadedFully() {
- if (downloadedFully == null) {
- // Ensure blocks count is valid by calling getBlocksCount()
- getBlocksCount();
- // It's fully downloaded if every block is true
- downloadedFully = !this.getDownloadedBlocks().contains(false);
- }
- return downloadedFully;
+ boolean downloadedFullyVal;
+ // Ensure blocks count is valid by calling getBlocksCount()
+ getBlocksCount();
+ // It's fully downloaded if every block is true
+ downloadedFullyVal = !this.downloadedBlocks().contains(false);
+ return downloadedFullyVal;
}
private int getBlocksCount() {
var expectedBlocksCount = getBlocksCount(size, FileSponge.BLOCK_SIZE);
- if (this.getDownloadedBlocks().size() != expectedBlocksCount) {
+ if (this.downloadedBlocks.size() != expectedBlocksCount) {
throw new IllegalStateException(
- "Blocks array length (" + this.getDownloadedBlocks().size()
- + ") != expected blocks count (" + expectedBlocksCount + ")");
+ "Blocks array length (" + this.downloadedBlocks().size() + ") != expected blocks count ("
+ + expectedBlocksCount + ")");
}
return expectedBlocksCount;
}
@@ -81,8 +72,7 @@ public class DiskMetadata {
public DiskMetadataSerializer(ByteBufAllocator allocator) {
this.allocator = allocator;
}
-
- @SneakyThrows
+
@Override
public @NotNull DiskMetadata deserialize(@NotNull ByteBuf serialized) {
try {
@@ -95,24 +85,27 @@ public class DiskMetadata {
downloadedBlocks.add(dis.readBoolean());
}
return new DiskMetadata(size, downloadedBlocks);
+ } catch (IOException e) {
+ throw new SerializationException(e);
} finally {
serialized.release();
}
}
- @SneakyThrows
@Override
public @NotNull ByteBuf serialize(@NotNull DiskMetadata deserialized) {
ByteBuf buffer = allocator.buffer();
try (var bos = new ByteBufOutputStream(buffer)) {
try (var dos = new DataOutputStream(bos)) {
- dos.writeInt(deserialized.getSize());
+ dos.writeInt(deserialized.size());
deserialized.getBlocksCount();
- for (boolean downloadedBlock : deserialized.getDownloadedBlocks()) {
+ for (boolean downloadedBlock : deserialized.downloadedBlocks) {
dos.writeBoolean(downloadedBlock);
}
}
return buffer;
+ } catch (IOException e) {
+ throw new SerializationException(e);
}
}
diff --git a/src/main/lombok/org/warp/filesponge/FileSponge.java b/src/main/java/org/warp/filesponge/FileSponge.java
similarity index 98%
rename from src/main/lombok/org/warp/filesponge/FileSponge.java
rename to src/main/java/org/warp/filesponge/FileSponge.java
index 2daf454..78fe763 100644
--- a/src/main/lombok/org/warp/filesponge/FileSponge.java
+++ b/src/main/java/org/warp/filesponge/FileSponge.java
@@ -18,7 +18,6 @@
package org.warp.filesponge;
-import it.cavallium.dbengine.database.disk.LLLocalDictionary.ReleasableSlice;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
diff --git a/src/main/lombok/org/warp/filesponge/FileSpongeUtils.java b/src/main/java/org/warp/filesponge/FileSpongeUtils.java
similarity index 100%
rename from src/main/lombok/org/warp/filesponge/FileSpongeUtils.java
rename to src/main/java/org/warp/filesponge/FileSpongeUtils.java
diff --git a/src/main/lombok/org/warp/filesponge/Metadata.java b/src/main/java/org/warp/filesponge/Metadata.java
similarity index 88%
rename from src/main/lombok/org/warp/filesponge/Metadata.java
rename to src/main/java/org/warp/filesponge/Metadata.java
index 291c2e7..e903b28 100644
--- a/src/main/lombok/org/warp/filesponge/Metadata.java
+++ b/src/main/java/org/warp/filesponge/Metadata.java
@@ -18,14 +18,8 @@
package org.warp.filesponge;
-import lombok.Value;
-@Value
-public class Metadata {
-
- /**
- * -1 = unknown size
- */
- int size;
-
-}
+/**
+ * size -1 = unknown size
+ */
+public record Metadata(int size) {}
diff --git a/src/main/lombok/org/warp/filesponge/URL.java b/src/main/java/org/warp/filesponge/URL.java
similarity index 100%
rename from src/main/lombok/org/warp/filesponge/URL.java
rename to src/main/java/org/warp/filesponge/URL.java
diff --git a/src/main/lombok/org/warp/filesponge/URLDiskHandler.java b/src/main/java/org/warp/filesponge/URLDiskHandler.java
similarity index 100%
rename from src/main/lombok/org/warp/filesponge/URLDiskHandler.java
rename to src/main/java/org/warp/filesponge/URLDiskHandler.java
diff --git a/src/main/lombok/org/warp/filesponge/URLHandler.java b/src/main/java/org/warp/filesponge/URLHandler.java
similarity index 100%
rename from src/main/lombok/org/warp/filesponge/URLHandler.java
rename to src/main/java/org/warp/filesponge/URLHandler.java
diff --git a/src/main/lombok/org/warp/filesponge/URLWriter.java b/src/main/java/org/warp/filesponge/URLWriter.java
similarity index 100%
rename from src/main/lombok/org/warp/filesponge/URLWriter.java
rename to src/main/java/org/warp/filesponge/URLWriter.java
diff --git a/src/main/lombok/org/warp/filesponge/URLsDiskHandler.java b/src/main/java/org/warp/filesponge/URLsDiskHandler.java
similarity index 100%
rename from src/main/lombok/org/warp/filesponge/URLsDiskHandler.java
rename to src/main/java/org/warp/filesponge/URLsDiskHandler.java
diff --git a/src/main/lombok/org/warp/filesponge/URLsHandler.java b/src/main/java/org/warp/filesponge/URLsHandler.java
similarity index 100%
rename from src/main/lombok/org/warp/filesponge/URLsHandler.java
rename to src/main/java/org/warp/filesponge/URLsHandler.java
diff --git a/src/main/lombok/org/warp/filesponge/URLsWriter.java b/src/main/java/org/warp/filesponge/URLsWriter.java
similarity index 100%
rename from src/main/lombok/org/warp/filesponge/URLsWriter.java
rename to src/main/java/org/warp/filesponge/URLsWriter.java
diff --git a/src/test/lombok/org/warp/filesponge/AppTest.java b/src/test/java/org/warp/filesponge/AppTest.java
similarity index 100%
rename from src/test/lombok/org/warp/filesponge/AppTest.java
rename to src/test/java/org/warp/filesponge/AppTest.java
diff --git a/src/test/lombok/org/warp/filesponge/ThreadSafety.java b/src/test/java/org/warp/filesponge/ThreadSafety.java
similarity index 100%
rename from src/test/lombok/org/warp/filesponge/ThreadSafety.java
rename to src/test/java/org/warp/filesponge/ThreadSafety.java