This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 48fa333e40d47b8558d84ff6456cec73c39007e6 Author: Rene Cordier <[email protected]> AuthorDate: Wed Sep 9 11:34:14 2020 +0700 JAMES-3352 Rename DumbBlobStore to BlobStoreDAO To avoid unecessary confusion --- .../vault/blob/BlobStoreDeletedMessageVault.java | 10 ++-- .../james/vault/DeletedMessageVaultHookTest.java | 8 +-- .../blob/BlobStoreDeletedMessageVaultTest.java | 8 +-- .../CassandraRabbitMQAwsS3SmtpTestRuleFactory.java | 6 +- .../api/{DumbBlobStore.java => BlobStoreDAO.java} | 2 +- ...toreContract.java => BlobStoreDAOContract.java} | 2 +- ...bStoreFixture.java => BlobStoreDAOFixture.java} | 2 +- ...ntract.java => BucketBlobStoreDAOContract.java} | 42 +++++++------- ...ntract.java => DeleteBlobStoreDAOContract.java} | 44 +++++++-------- ...ract.java => ReadSaveBlobStoreDAOContract.java} | 64 +++++++++++----------- ...mbBlobStore.java => CassandraBlobStoreDAO.java} | 12 ++-- .../blob/cassandra/CassandraBlobStoreFactory.java | 5 +- ...oreTest.java => CassandraBlobStoreDAOTest.java} | 12 ++-- .../blob/cassandra/CassandraBlobStoreTest.java | 2 +- .../CassandraPassTroughBlobStoreTest.java | 2 +- ...yDumbBlobStore.java => MemoryBlobStoreDAO.java} | 6 +- .../james/blob/memory/MemoryBlobStoreFactory.java | 2 +- ...bStoreTest.java => MemoryBlobStoreDAOTest.java} | 12 ++-- .../{S3DumbBlobStore.java => S3BlobStoreDAO.java} | 6 +- ...bBlobStoreTest.java => S3BlobStoreDAOTest.java} | 12 ++-- .../aws/S3DeDuplicationBlobStoreTest.java | 10 ++-- .../aws/S3PassThroughBlobStoreTest.java | 10 ++-- .../blob/deduplication/BlobStoreFactory.java | 14 ++--- .../deduplication/DeDuplicationBlobStore.scala | 14 ++--- .../blob/deduplication/PassThroughBlobStore.scala | 16 +++--- .../org/apache/james/modules/BlobMemoryModule.java | 8 +-- .../modules/objectstorage/S3BlobStoreModule.java | 8 +-- .../CassandraBlobStoreDependenciesModule.java | 4 +- .../modules/mailbox/CassandraBlobStoreModule.java | 8 +-- .../modules/blobstore/BlobStoreModulesChooser.java | 22 ++++---- .../blobstore/BlobStoreModulesChooserTest.java | 4 +- .../routes/DeletedMessagesVaultRoutesTest.java | 8 +-- 32 files changed, 193 insertions(+), 192 deletions(-) diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVault.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVault.java index 2bc66b4..d61247b 100644 --- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVault.java +++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVault.java @@ -29,8 +29,8 @@ import java.util.Optional; import javax.inject.Inject; import org.apache.james.blob.api.BlobStore; +import org.apache.james.blob.api.BlobStoreDAO; import org.apache.james.blob.api.BucketName; -import org.apache.james.blob.api.DumbBlobStore; import org.apache.james.blob.api.ObjectNotFoundException; import org.apache.james.core.Username; import org.apache.james.mailbox.model.MessageId; @@ -68,7 +68,7 @@ public class BlobStoreDeletedMessageVault implements DeletedMessageVault { private final MetricFactory metricFactory; private final DeletedMessageMetadataVault messageMetadataVault; private final BlobStore blobStore; - private final DumbBlobStore dumbBlobStore; + private final BlobStoreDAO blobStoreDAO; private final BucketNameGenerator nameGenerator; private final Clock clock; private final RetentionConfiguration retentionConfiguration; @@ -76,13 +76,13 @@ public class BlobStoreDeletedMessageVault implements DeletedMessageVault { @Inject public BlobStoreDeletedMessageVault(MetricFactory metricFactory, DeletedMessageMetadataVault messageMetadataVault, - BlobStore blobStore, DumbBlobStore dumbBlobStore, BucketNameGenerator nameGenerator, + BlobStore blobStore, BlobStoreDAO blobStoreDAO, BucketNameGenerator nameGenerator, Clock clock, RetentionConfiguration retentionConfiguration) { this.metricFactory = metricFactory; this.messageMetadataVault = messageMetadataVault; this.blobStore = blobStore; - this.dumbBlobStore = dumbBlobStore; + this.blobStoreDAO = blobStoreDAO; this.nameGenerator = nameGenerator; this.clock = clock; this.retentionConfiguration = retentionConfiguration; @@ -159,7 +159,7 @@ public class BlobStoreDeletedMessageVault implements DeletedMessageVault { return Mono.from(messageMetadataVault.retrieveStorageInformation(username, messageId)) .flatMap(storageInformation -> Mono.from(messageMetadataVault.remove(storageInformation.getBucketName(), username, messageId)) .thenReturn(storageInformation)) - .flatMap(storageInformation -> Mono.from(dumbBlobStore.delete(storageInformation.getBucketName(), storageInformation.getBlobId()))) + .flatMap(storageInformation -> Mono.from(blobStoreDAO.delete(storageInformation.getBucketName(), storageInformation.getBlobId()))) .subscribeOn(Schedulers.elastic()); } diff --git a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java index 12165b6..0a94c32 100644 --- a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java +++ b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/DeletedMessageVaultHookTest.java @@ -32,7 +32,7 @@ import java.util.List; import java.util.stream.IntStream; import org.apache.james.blob.api.HashBlobId; -import org.apache.james.blob.memory.MemoryDumbBlobStore; +import org.apache.james.blob.memory.MemoryBlobStoreDAO; import org.apache.james.core.MailAddress; import org.apache.james.core.MaybeSender; import org.apache.james.core.Username; @@ -112,13 +112,13 @@ class DeletedMessageVaultHookTest { @BeforeEach void setUp() throws Exception { clock = Clock.fixed(DELETION_DATE.toInstant(), ZoneOffset.UTC); - MemoryDumbBlobStore dumbBlobStore = new MemoryDumbBlobStore(); + MemoryBlobStoreDAO blobStoreDAO = new MemoryBlobStoreDAO(); messageVault = new BlobStoreDeletedMessageVault(new RecordingMetricFactory(), new MemoryDeletedMessageMetadataVault(), BlobStoreFactory.builder() - .dumbBlobStore(dumbBlobStore) + .blobStoreDAO(blobStoreDAO) .blobIdFactory(new HashBlobId.Factory()) .defaultBucketName() - .passthrough(), dumbBlobStore, new BucketNameGenerator(clock), clock, + .passthrough(), blobStoreDAO, new BucketNameGenerator(clock), clock, RetentionConfiguration.DEFAULT); DeletedMessageConverter deletedMessageConverter = new DeletedMessageConverter(); diff --git a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVaultTest.java b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVaultTest.java index 982fefd..6b58ffd 100644 --- a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVaultTest.java +++ b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVaultTest.java @@ -40,7 +40,7 @@ import java.time.ZonedDateTime; import org.apache.james.blob.api.BucketName; import org.apache.james.blob.api.HashBlobId; -import org.apache.james.blob.memory.MemoryDumbBlobStore; +import org.apache.james.blob.memory.MemoryBlobStoreDAO; import org.apache.james.metrics.tests.RecordingMetricFactory; import org.apache.james.server.blob.deduplication.BlobStoreFactory; import org.apache.james.utils.UpdatableTickingClock; @@ -64,14 +64,14 @@ class BlobStoreDeletedMessageVaultTest implements DeletedMessageVaultContract, D void setUp() { clock = new UpdatableTickingClock(NOW.toInstant()); metricFactory = new RecordingMetricFactory(); - MemoryDumbBlobStore dumbBlobStore = new MemoryDumbBlobStore(); + MemoryBlobStoreDAO blobStoreDAO = new MemoryBlobStoreDAO(); messageVault = new BlobStoreDeletedMessageVault(metricFactory, new MemoryDeletedMessageMetadataVault(), BlobStoreFactory.builder() - .dumbBlobStore(dumbBlobStore) + .blobStoreDAO(blobStoreDAO) .blobIdFactory(new HashBlobId.Factory()) .defaultBucketName() .passthrough(), - dumbBlobStore, new BucketNameGenerator(clock), clock, RetentionConfiguration.DEFAULT); + blobStoreDAO, new BucketNameGenerator(clock), clock, RetentionConfiguration.DEFAULT); } @Override diff --git a/mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/java/org/apache/james/mpt/smtp/CassandraRabbitMQAwsS3SmtpTestRuleFactory.java b/mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/java/org/apache/james/mpt/smtp/CassandraRabbitMQAwsS3SmtpTestRuleFactory.java index a09f56e..df46507 100644 --- a/mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/java/org/apache/james/mpt/smtp/CassandraRabbitMQAwsS3SmtpTestRuleFactory.java +++ b/mpt/impl/smtp/cassandra-rabbitmq-object-storage/src/test/java/org/apache/james/mpt/smtp/CassandraRabbitMQAwsS3SmtpTestRuleFactory.java @@ -26,9 +26,9 @@ import org.apache.james.backends.cassandra.DockerCassandra; import org.apache.james.backends.cassandra.init.configuration.ClusterConfiguration; import org.apache.james.backends.rabbitmq.DockerRabbitMQSingleton; import org.apache.james.blob.api.BlobStore; -import org.apache.james.blob.api.DumbBlobStore; +import org.apache.james.blob.api.BlobStoreDAO; import org.apache.james.blob.api.MetricableBlobStore; -import org.apache.james.blob.objectstorage.aws.S3DumbBlobStore; +import org.apache.james.blob.objectstorage.aws.S3BlobStoreDAO; import org.apache.james.dnsservice.api.DNSService; import org.apache.james.modules.TestRabbitMQModule; import org.apache.james.modules.mailbox.KeyspacesConfiguration; @@ -60,7 +60,7 @@ public final class CassandraRabbitMQAwsS3SmtpTestRuleFactory { bind(BlobStore.class) .annotatedWith(Names.named(MetricableBlobStore.BLOB_STORE_IMPLEMENTATION)) .to(DeDuplicationBlobStore.class); - bind(DumbBlobStore.class).to(S3DumbBlobStore.class); + bind(BlobStoreDAO.class).to(S3BlobStoreDAO.class); } }; diff --git a/server/blob/blob-api/src/main/java/org/apache/james/blob/api/DumbBlobStore.java b/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStoreDAO.java similarity index 99% rename from server/blob/blob-api/src/main/java/org/apache/james/blob/api/DumbBlobStore.java rename to server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStoreDAO.java index f2045fc..f0e2844 100644 --- a/server/blob/blob-api/src/main/java/org/apache/james/blob/api/DumbBlobStore.java +++ b/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStoreDAO.java @@ -26,7 +26,7 @@ import org.reactivestreams.Publisher; import com.google.common.io.ByteSource; -public interface DumbBlobStore { +public interface BlobStoreDAO { /** * Reads a Blob based on its BucketName and its BlobId. diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DumbBlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreDAOContract.java similarity index 89% rename from server/blob/blob-api/src/test/java/org/apache/james/blob/api/DumbBlobStoreContract.java rename to server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreDAOContract.java index 9dc1575..1276f78 100644 --- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DumbBlobStoreContract.java +++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreDAOContract.java @@ -18,5 +18,5 @@ ****************************************************************/ package org.apache.james.blob.api; -public interface DumbBlobStoreContract extends ReadSaveDumbBlobStoreContract, DeleteDumbBlobStoreContract, BucketDumbBlobStoreContract { +public interface BlobStoreDAOContract extends ReadSaveBlobStoreDAOContract, DeleteBlobStoreDAOContract, BucketBlobStoreDAOContract { } diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DumbBlobStoreFixture.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreDAOFixture.java similarity index 98% rename from server/blob/blob-api/src/test/java/org/apache/james/blob/api/DumbBlobStoreFixture.java rename to server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreDAOFixture.java index ec9e91f..ca03d46 100644 --- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DumbBlobStoreFixture.java +++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreDAOFixture.java @@ -22,7 +22,7 @@ import java.nio.charset.StandardCharsets; import com.google.common.base.Strings; -public interface DumbBlobStoreFixture { +public interface BlobStoreDAOFixture { BucketName TEST_BUCKET_NAME = BucketName.of("my-test-bucket"); BucketName CUSTOM_BUCKET_NAME = BucketName.of("custom"); BlobId TEST_BLOB_ID = new TestBlobId("test-blob-id"); diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketDumbBlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketBlobStoreDAOContract.java similarity index 85% rename from server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketDumbBlobStoreContract.java rename to server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketBlobStoreDAOContract.java index d70425e..acb4fe8 100644 --- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketDumbBlobStoreContract.java +++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BucketBlobStoreDAOContract.java @@ -19,12 +19,12 @@ package org.apache.james.blob.api; -import static org.apache.james.blob.api.DumbBlobStoreFixture.CUSTOM_BUCKET_NAME; -import static org.apache.james.blob.api.DumbBlobStoreFixture.OTHER_TEST_BLOB_ID; -import static org.apache.james.blob.api.DumbBlobStoreFixture.SHORT_BYTEARRAY; -import static org.apache.james.blob.api.DumbBlobStoreFixture.SHORT_STRING; -import static org.apache.james.blob.api.DumbBlobStoreFixture.TEST_BLOB_ID; -import static org.apache.james.blob.api.DumbBlobStoreFixture.TEST_BUCKET_NAME; +import static org.apache.james.blob.api.BlobStoreDAOFixture.CUSTOM_BUCKET_NAME; +import static org.apache.james.blob.api.BlobStoreDAOFixture.OTHER_TEST_BLOB_ID; +import static org.apache.james.blob.api.BlobStoreDAOFixture.SHORT_BYTEARRAY; +import static org.apache.james.blob.api.BlobStoreDAOFixture.SHORT_STRING; +import static org.apache.james.blob.api.BlobStoreDAOFixture.TEST_BLOB_ID; +import static org.apache.james.blob.api.BlobStoreDAOFixture.TEST_BUCKET_NAME; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -37,13 +37,13 @@ import org.junit.jupiter.api.Test; import reactor.core.publisher.Mono; -public interface BucketDumbBlobStoreContract { +public interface BucketBlobStoreDAOContract { - DumbBlobStore testee(); + BlobStoreDAO testee(); @Test default void deleteBucketShouldThrowWhenNullBucketName() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.deleteBucket(null)).block()) .isInstanceOf(NullPointerException.class); @@ -51,7 +51,7 @@ public interface BucketDumbBlobStoreContract { @Test default void deleteBucketShouldDeleteExistingBucketWithItsData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); Mono.from(store.deleteBucket(TEST_BUCKET_NAME)).block(); @@ -62,7 +62,7 @@ public interface BucketDumbBlobStoreContract { @Test default void deleteBucketShouldBeIdempotent() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); Mono.from(store.deleteBucket(TEST_BUCKET_NAME)).block(); @@ -73,7 +73,7 @@ public interface BucketDumbBlobStoreContract { @Test default void saveBytesShouldThrowWhenNullBucketName() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.save(null, TEST_BLOB_ID, SHORT_BYTEARRAY)).block()) .isInstanceOf(NullPointerException.class); @@ -81,7 +81,7 @@ public interface BucketDumbBlobStoreContract { @Test default void saveStringShouldThrowWhenNullBucketName() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.save(null, TEST_BLOB_ID, SHORT_STRING)).block()) .isInstanceOf(NullPointerException.class); @@ -89,7 +89,7 @@ public interface BucketDumbBlobStoreContract { @Test default void saveInputStreamShouldThrowWhenNullBucketName() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.save(null, TEST_BLOB_ID, new ByteArrayInputStream(SHORT_BYTEARRAY))).block()) .isInstanceOf(NullPointerException.class); @@ -97,7 +97,7 @@ public interface BucketDumbBlobStoreContract { @Test default void readShouldThrowWhenNullBucketName() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); assertThatThrownBy(() -> store.read(null, TEST_BLOB_ID)) @@ -106,7 +106,7 @@ public interface BucketDumbBlobStoreContract { @Test default void readBytesShouldThrowWhenNullBucketName() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); assertThatThrownBy(() -> Mono.from(store.readBytes(null, TEST_BLOB_ID)).block()) @@ -115,7 +115,7 @@ public interface BucketDumbBlobStoreContract { @Test default void readStreamShouldThrowWhenBucketDoesNotExist() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); assertThatThrownBy(() -> store.read(CUSTOM_BUCKET_NAME, TEST_BLOB_ID).read()) @@ -124,7 +124,7 @@ public interface BucketDumbBlobStoreContract { @Test default void readBytesShouldThrowWhenBucketDoesNotExistWithBigData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); @@ -134,7 +134,7 @@ public interface BucketDumbBlobStoreContract { @Test default void shouldBeAbleToSaveDataInMultipleBuckets() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); Mono.from(store.save(CUSTOM_BUCKET_NAME, OTHER_TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); @@ -147,7 +147,7 @@ public interface BucketDumbBlobStoreContract { @Test default void saveConcurrentlyWithNonPreExistingBucketShouldNotFail() throws Exception { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); ConcurrentTestRunner.builder() .operation(((threadNumber, step) -> @@ -162,7 +162,7 @@ public interface BucketDumbBlobStoreContract { @Test default void deleteBucketConcurrentlyShouldNotFail() throws Exception { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteDumbBlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteBlobStoreDAOContract.java similarity index 87% rename from server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteDumbBlobStoreContract.java rename to server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteBlobStoreDAOContract.java index b501e51..8c46eb1 100644 --- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteDumbBlobStoreContract.java +++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/DeleteBlobStoreDAOContract.java @@ -19,14 +19,14 @@ package org.apache.james.blob.api; -import static org.apache.james.blob.api.DumbBlobStoreFixture.CUSTOM_BUCKET_NAME; -import static org.apache.james.blob.api.DumbBlobStoreFixture.ELEVEN_KILOBYTES; -import static org.apache.james.blob.api.DumbBlobStoreFixture.OTHER_TEST_BLOB_ID; -import static org.apache.james.blob.api.DumbBlobStoreFixture.SHORT_BYTEARRAY; -import static org.apache.james.blob.api.DumbBlobStoreFixture.TEST_BLOB_ID; -import static org.apache.james.blob.api.DumbBlobStoreFixture.TEST_BUCKET_NAME; -import static org.apache.james.blob.api.DumbBlobStoreFixture.TWELVE_MEGABYTES; -import static org.apache.james.blob.api.DumbBlobStoreFixture.TWELVE_MEGABYTES_STRING; +import static org.apache.james.blob.api.BlobStoreDAOFixture.CUSTOM_BUCKET_NAME; +import static org.apache.james.blob.api.BlobStoreDAOFixture.ELEVEN_KILOBYTES; +import static org.apache.james.blob.api.BlobStoreDAOFixture.OTHER_TEST_BLOB_ID; +import static org.apache.james.blob.api.BlobStoreDAOFixture.SHORT_BYTEARRAY; +import static org.apache.james.blob.api.BlobStoreDAOFixture.TEST_BLOB_ID; +import static org.apache.james.blob.api.BlobStoreDAOFixture.TEST_BUCKET_NAME; +import static org.apache.james.blob.api.BlobStoreDAOFixture.TWELVE_MEGABYTES; +import static org.apache.james.blob.api.BlobStoreDAOFixture.TWELVE_MEGABYTES_STRING; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -44,13 +44,13 @@ import org.junit.jupiter.api.Test; import reactor.core.publisher.Mono; -public interface DeleteDumbBlobStoreContract { +public interface DeleteBlobStoreDAOContract { - DumbBlobStore testee(); + BlobStoreDAO testee(); @Test default void deleteShouldNotThrowWhenBlobDoesNotExist() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatCode(() -> Mono.from(store.delete(TEST_BUCKET_NAME, TEST_BLOB_ID)).block()) .doesNotThrowAnyException(); @@ -58,7 +58,7 @@ public interface DeleteDumbBlobStoreContract { @Test default void deleteShouldNotThrowWhenBucketDoesNotExist() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatCode(() -> Mono.from(store.delete(BucketName.of("not_existing_bucket_name"), TEST_BLOB_ID)).block()) .doesNotThrowAnyException(); @@ -66,7 +66,7 @@ public interface DeleteDumbBlobStoreContract { @Test default void deleteShouldDeleteExistingBlobData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); Mono.from(store.delete(TEST_BUCKET_NAME, TEST_BLOB_ID)).block(); @@ -77,7 +77,7 @@ public interface DeleteDumbBlobStoreContract { @Test default void deleteShouldBeIdempotent() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); Mono.from(store.delete(TEST_BUCKET_NAME, TEST_BLOB_ID)).block(); @@ -88,7 +88,7 @@ public interface DeleteDumbBlobStoreContract { @Test default void deleteShouldNotDeleteOtherBlobs() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); Mono.from(store.save(TEST_BUCKET_NAME, OTHER_TEST_BLOB_ID, ELEVEN_KILOBYTES)).block(); @@ -102,7 +102,7 @@ public interface DeleteDumbBlobStoreContract { @Test default void deleteConcurrentlyShouldNotFail() throws Exception { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, TWELVE_MEGABYTES)).block(); @@ -115,14 +115,14 @@ public interface DeleteDumbBlobStoreContract { @Test default void deleteShouldThrowWhenNullBucketName() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.delete(null, TEST_BLOB_ID)).block()) .isInstanceOf(NullPointerException.class); } @Test default void deleteShouldNotDeleteFromOtherBucket() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(CUSTOM_BUCKET_NAME, OTHER_TEST_BLOB_ID, "custom")).block(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); @@ -136,7 +136,7 @@ public interface DeleteDumbBlobStoreContract { @Test default void deleteShouldNotDeleteFromOtherBucketWhenSameBlobId() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(CUSTOM_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); @@ -150,7 +150,7 @@ public interface DeleteDumbBlobStoreContract { @Test default void readShouldNotReadPartiallyWhenDeletingConcurrentlyBigBlob() throws Exception { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, TWELVE_MEGABYTES)).block(); @@ -176,7 +176,7 @@ public interface DeleteDumbBlobStoreContract { @Test default void readBytesShouldNotReadPartiallyWhenDeletingConcurrentlyBigBlob() throws Exception { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, TWELVE_MEGABYTES)).block(); @@ -201,7 +201,7 @@ public interface DeleteDumbBlobStoreContract { @Test default void mixingSaveReadAndDeleteShouldReturnConsistentState() throws ExecutionException, InterruptedException { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, TWELVE_MEGABYTES)).block(); ConcurrentTestRunner.builder() .randomlyDistributedReactorOperations( diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/ReadSaveDumbBlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/ReadSaveBlobStoreDAOContract.java similarity index 90% rename from server/blob/blob-api/src/test/java/org/apache/james/blob/api/ReadSaveDumbBlobStoreContract.java rename to server/blob/blob-api/src/test/java/org/apache/james/blob/api/ReadSaveBlobStoreDAOContract.java index 294a67a..2c6570a 100644 --- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/ReadSaveDumbBlobStoreContract.java +++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/ReadSaveBlobStoreDAOContract.java @@ -19,12 +19,12 @@ package org.apache.james.blob.api; -import static org.apache.james.blob.api.DumbBlobStoreFixture.ELEVEN_KILOBYTES; -import static org.apache.james.blob.api.DumbBlobStoreFixture.EMPTY_BYTEARRAY; -import static org.apache.james.blob.api.DumbBlobStoreFixture.SHORT_BYTEARRAY; -import static org.apache.james.blob.api.DumbBlobStoreFixture.TEST_BLOB_ID; -import static org.apache.james.blob.api.DumbBlobStoreFixture.TEST_BUCKET_NAME; -import static org.apache.james.blob.api.DumbBlobStoreFixture.TWELVE_MEGABYTES; +import static org.apache.james.blob.api.BlobStoreDAOFixture.ELEVEN_KILOBYTES; +import static org.apache.james.blob.api.BlobStoreDAOFixture.EMPTY_BYTEARRAY; +import static org.apache.james.blob.api.BlobStoreDAOFixture.SHORT_BYTEARRAY; +import static org.apache.james.blob.api.BlobStoreDAOFixture.TEST_BLOB_ID; +import static org.apache.james.blob.api.BlobStoreDAOFixture.TEST_BUCKET_NAME; +import static org.apache.james.blob.api.BlobStoreDAOFixture.TWELVE_MEGABYTES; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -49,13 +49,13 @@ import com.google.common.io.ByteSource; import reactor.core.publisher.Mono; -public interface ReadSaveDumbBlobStoreContract { +public interface ReadSaveBlobStoreDAOContract { - DumbBlobStore testee(); + BlobStoreDAO testee(); @Test default void saveShouldThrowWhenNullData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, (byte[]) null)).block()) .isInstanceOf(NullPointerException.class); @@ -63,7 +63,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveShouldThrowWhenNullString() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, (String) null)).block()) .isInstanceOf(NullPointerException.class); @@ -71,7 +71,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveShouldThrowWhenNullInputStream() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, (InputStream) null)).block()) .isInstanceOf(NullPointerException.class); @@ -79,7 +79,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveShouldThrowWhenNullByteSource() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, (ByteSource) null)).block()) .isInstanceOf(NullPointerException.class); @@ -87,7 +87,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveShouldSaveEmptyData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, EMPTY_BYTEARRAY)).block(); byte[] bytes = Mono.from(store.readBytes(TEST_BUCKET_NAME, TEST_BLOB_ID)).block(); @@ -97,7 +97,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveShouldSaveEmptyString() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, "")).block(); @@ -108,7 +108,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveShouldSaveEmptyInputStream() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, new ByteArrayInputStream(EMPTY_BYTEARRAY))).block(); @@ -119,7 +119,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveShouldSaveEmptyByteSource() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, ByteSource.empty())).block(); @@ -130,7 +130,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void readBytesShouldThrowWhenNotExisting() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.readBytes(TEST_BUCKET_NAME, new TestBlobId("unknown"))).block()) .isExactlyInstanceOf(ObjectNotFoundException.class); @@ -138,7 +138,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void readBytesShouldReturnSavedData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); @@ -149,7 +149,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void readBytesShouldReturnLongSavedData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, ELEVEN_KILOBYTES)).block(); @@ -160,7 +160,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void readBytesShouldReturnBigSavedData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, TWELVE_MEGABYTES)).block(); @@ -171,7 +171,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void readStreamShouldThrowWhenNotExisting() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> store.read(TEST_BUCKET_NAME, new TestBlobId("unknown")).read()) .isInstanceOf(ObjectNotFoundException.class); @@ -179,7 +179,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveShouldCreateBucket() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); BucketName nonExisting = BucketName.of("non-existing-bucket"); Mono.from(store.save(nonExisting, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); @@ -190,7 +190,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void readShouldReturnSavedData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, SHORT_BYTEARRAY)).block(); InputStream read = store.read(TEST_BUCKET_NAME, TEST_BLOB_ID); @@ -200,7 +200,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void readShouldReturnLongSavedData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, ELEVEN_KILOBYTES)).block(); InputStream read = store.read(TEST_BUCKET_NAME, TEST_BLOB_ID); @@ -210,7 +210,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void readShouldReturnBigSavedData() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, TWELVE_MEGABYTES)).block(); InputStream read = store.read(TEST_BUCKET_NAME, TEST_BLOB_ID); @@ -221,7 +221,7 @@ public interface ReadSaveDumbBlobStoreContract { @ParameterizedTest(name = "[{index}] {0}") @MethodSource("blobs") default void saveBytesShouldBeIdempotent(String description, byte[] bytes) { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, bytes)).block(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, bytes)).block(); @@ -233,7 +233,7 @@ public interface ReadSaveDumbBlobStoreContract { @ParameterizedTest(name = "[{index}] {0}") @MethodSource("blobs") default void saveByteSourceShouldBeIdempotent(String description, byte[] bytes) { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, ByteSource.wrap(bytes))).block(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, ByteSource.wrap(bytes))).block(); @@ -245,7 +245,7 @@ public interface ReadSaveDumbBlobStoreContract { @ParameterizedTest(name = "[{index}] {0}") @MethodSource("blobs") default void saveInputStreamShouldBeIdempotent(String description, byte[] bytes) { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, ByteSource.wrap(bytes))).block(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, new ByteArrayInputStream(bytes))).block(); @@ -256,7 +256,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveInputStreamShouldNotOverwritePreviousDataOnFailingInputStream() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, ByteSource.wrap(ELEVEN_KILOBYTES))).block(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, getThrowingInputStream())) @@ -269,7 +269,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveByteSourceShouldNotOverwritePreviousDataOnFailingInputStream() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, ByteSource.wrap(ELEVEN_KILOBYTES))).block(); Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, new ByteSource() { @@ -287,7 +287,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveByteSourceShouldThrowOnIOException() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, new ByteSource() { @Override @@ -300,7 +300,7 @@ public interface ReadSaveDumbBlobStoreContract { @Test default void saveInputStreamShouldThrowOnIOException() { - DumbBlobStore store = testee(); + BlobStoreDAO store = testee(); assertThatThrownBy(() -> Mono.from(store.save(TEST_BUCKET_NAME, TEST_BLOB_ID, getThrowingInputStream())).block()) .isInstanceOf(ObjectStoreIOException.class); diff --git a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraDumbBlobStore.java b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreDAO.java similarity index 95% rename from server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraDumbBlobStore.java rename to server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreDAO.java index 61cdd93..d0cfad5 100644 --- a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraDumbBlobStore.java +++ b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreDAO.java @@ -30,8 +30,8 @@ import javax.inject.Named; import org.apache.commons.lang3.tuple.Pair; import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration; import org.apache.james.blob.api.BlobId; +import org.apache.james.blob.api.BlobStoreDAO; import org.apache.james.blob.api.BucketName; -import org.apache.james.blob.api.DumbBlobStore; import org.apache.james.blob.api.ObjectNotFoundException; import org.apache.james.blob.api.ObjectStoreIOException; import org.apache.james.util.DataChunker; @@ -45,7 +45,7 @@ import com.google.common.io.ByteSource; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -public class CassandraDumbBlobStore implements DumbBlobStore { +public class CassandraBlobStoreDAO implements BlobStoreDAO { public static final boolean LAZY = false; private final CassandraDefaultBucketDAO defaultBucketDAO; @@ -55,10 +55,10 @@ public class CassandraDumbBlobStore implements DumbBlobStore { @Inject @VisibleForTesting - public CassandraDumbBlobStore(CassandraDefaultBucketDAO defaultBucketDAO, - CassandraBucketDAO bucketDAO, - CassandraConfiguration cassandraConfiguration, - @Named("defaultBucket") BucketName defaultBucket) { + public CassandraBlobStoreDAO(CassandraDefaultBucketDAO defaultBucketDAO, + CassandraBucketDAO bucketDAO, + CassandraConfiguration cassandraConfiguration, + @Named("defaultBucket") BucketName defaultBucket) { this.defaultBucketDAO = defaultBucketDAO; this.bucketDAO = bucketDAO; this.configuration = cassandraConfiguration; diff --git a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreFactory.java b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreFactory.java index 5dc2d8f..9c1ca73 100644 --- a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreFactory.java +++ b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobStoreFactory.java @@ -31,8 +31,9 @@ public class CassandraBlobStoreFactory { HashBlobId.Factory blobIdFactory = new HashBlobId.Factory(); CassandraBucketDAO bucketDAO = new CassandraBucketDAO(blobIdFactory, session); CassandraDefaultBucketDAO defaultBucketDAO = new CassandraDefaultBucketDAO(session); - CassandraDumbBlobStore dumbBlobStore = new CassandraDumbBlobStore(defaultBucketDAO, bucketDAO, CassandraConfiguration.DEFAULT_CONFIGURATION, BucketName.DEFAULT); - return BlobStoreFactory.builder().dumbBlobStore(dumbBlobStore) + CassandraBlobStoreDAO blobStoreDAO = new CassandraBlobStoreDAO(defaultBucketDAO, bucketDAO, CassandraConfiguration.DEFAULT_CONFIGURATION, BucketName.DEFAULT); + return BlobStoreFactory.builder() + .blobStoreDAO(blobStoreDAO) .blobIdFactory(blobIdFactory) .defaultBucketName(); } diff --git a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraDumbBlobStoreTest.java b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreDAOTest.java similarity index 89% rename from server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraDumbBlobStoreTest.java rename to server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreDAOTest.java index 42ce749..a24497a 100644 --- a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraDumbBlobStoreTest.java +++ b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreDAOTest.java @@ -22,21 +22,21 @@ package org.apache.james.blob.cassandra; import org.apache.james.backends.cassandra.CassandraCluster; import org.apache.james.backends.cassandra.CassandraClusterExtension; import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration; +import org.apache.james.blob.api.BlobStoreDAO; +import org.apache.james.blob.api.BlobStoreDAOContract; import org.apache.james.blob.api.BucketName; -import org.apache.james.blob.api.DumbBlobStore; -import org.apache.james.blob.api.DumbBlobStoreContract; import org.apache.james.blob.api.HashBlobId; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.extension.RegisterExtension; -public class CassandraDumbBlobStoreTest implements DumbBlobStoreContract { +public class CassandraBlobStoreDAOTest implements BlobStoreDAOContract { private static final int CHUNK_SIZE = 10240; private static final int MULTIPLE_CHUNK_SIZE = 3; @RegisterExtension static CassandraClusterExtension cassandraCluster = new CassandraClusterExtension(CassandraBlobModule.MODULE); - private DumbBlobStore testee; + private BlobStoreDAO testee; private CassandraDefaultBucketDAO defaultBucketDAO; @BeforeEach @@ -44,7 +44,7 @@ public class CassandraDumbBlobStoreTest implements DumbBlobStoreContract { HashBlobId.Factory blobIdFactory = new HashBlobId.Factory(); CassandraBucketDAO bucketDAO = new CassandraBucketDAO(blobIdFactory, cassandra.getConf()); defaultBucketDAO = new CassandraDefaultBucketDAO(cassandra.getConf()); - testee = new CassandraDumbBlobStore( + testee = new CassandraBlobStoreDAO( defaultBucketDAO, bucketDAO, CassandraConfiguration.builder() @@ -54,7 +54,7 @@ public class CassandraDumbBlobStoreTest implements DumbBlobStoreContract { } @Override - public DumbBlobStore testee() { + public BlobStoreDAO testee() { return testee; } diff --git a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreTest.java b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreTest.java index 56e6ac0..35bae4b 100644 --- a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreTest.java +++ b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobStoreTest.java @@ -52,7 +52,7 @@ public class CassandraBlobStoreTest implements CassandraBlobStoreContract, Dedup testee = new MetricableBlobStore( metricsTestExtension.getMetricFactory(), BlobStoreFactory.builder() - .dumbBlobStore(new CassandraDumbBlobStore(defaultBucketDAO, bucketDAO, cassandraConfiguration, BucketName.DEFAULT)) + .blobStoreDAO(new CassandraBlobStoreDAO(defaultBucketDAO, bucketDAO, cassandraConfiguration, BucketName.DEFAULT)) .blobIdFactory(blobIdFactory) .defaultBucketName() .deduplication()); diff --git a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraPassTroughBlobStoreTest.java b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraPassTroughBlobStoreTest.java index 2df512e..2489e62 100644 --- a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraPassTroughBlobStoreTest.java +++ b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraPassTroughBlobStoreTest.java @@ -52,7 +52,7 @@ public class CassandraPassTroughBlobStoreTest implements DeleteBlobStoreContract testee = new MetricableBlobStore( metricsTestExtension.getMetricFactory(), BlobStoreFactory.builder() - .dumbBlobStore(new CassandraDumbBlobStore(defaultBucketDAO, bucketDAO, cassandraConfiguration, BucketName.DEFAULT)) + .blobStoreDAO(new CassandraBlobStoreDAO(defaultBucketDAO, bucketDAO, cassandraConfiguration, BucketName.DEFAULT)) .blobIdFactory(blobIdFactory) .defaultBucketName() .passthrough()); diff --git a/server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryDumbBlobStore.java b/server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreDAO.java similarity index 96% rename from server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryDumbBlobStore.java rename to server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreDAO.java index 6227d6d..52bbd95 100644 --- a/server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryDumbBlobStore.java +++ b/server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreDAO.java @@ -25,8 +25,8 @@ import java.io.InputStream; import org.apache.commons.io.IOUtils; import org.apache.james.blob.api.BlobId; +import org.apache.james.blob.api.BlobStoreDAO; import org.apache.james.blob.api.BucketName; -import org.apache.james.blob.api.DumbBlobStore; import org.apache.james.blob.api.ObjectNotFoundException; import org.apache.james.blob.api.ObjectStoreIOException; @@ -37,11 +37,11 @@ import com.google.common.io.ByteSource; import reactor.core.publisher.Mono; -public class MemoryDumbBlobStore implements DumbBlobStore { +public class MemoryBlobStoreDAO implements BlobStoreDAO { private final Table<BucketName, BlobId, byte[]> blobs; - public MemoryDumbBlobStore() { + public MemoryBlobStoreDAO() { blobs = HashBasedTable.create(); } diff --git a/server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreFactory.java b/server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreFactory.java index bc59922..3e4ead6 100644 --- a/server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreFactory.java +++ b/server/blob/blob-memory/src/main/java/org/apache/james/blob/memory/MemoryBlobStoreFactory.java @@ -23,6 +23,6 @@ import org.apache.james.server.blob.deduplication.BlobStoreFactory; public class MemoryBlobStoreFactory { public static BlobStoreFactory.RequireBlobIdFactory builder() { - return BlobStoreFactory.builder().dumbBlobStore(new MemoryDumbBlobStore()); + return BlobStoreFactory.builder().blobStoreDAO(new MemoryBlobStoreDAO()); } } diff --git a/server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryDumbBlobStoreTest.java b/server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryBlobStoreDAOTest.java similarity index 82% rename from server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryDumbBlobStoreTest.java rename to server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryBlobStoreDAOTest.java index eb326f4..3225301 100644 --- a/server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryDumbBlobStoreTest.java +++ b/server/blob/blob-memory/src/test/java/org/apache/james/blob/memory/MemoryBlobStoreDAOTest.java @@ -19,21 +19,21 @@ package org.apache.james.blob.memory; -import org.apache.james.blob.api.DumbBlobStore; -import org.apache.james.blob.api.DumbBlobStoreContract; +import org.apache.james.blob.api.BlobStoreDAO; +import org.apache.james.blob.api.BlobStoreDAOContract; import org.junit.jupiter.api.BeforeEach; -class MemoryDumbBlobStoreTest implements DumbBlobStoreContract { +class MemoryBlobStoreDAOTest implements BlobStoreDAOContract { - private MemoryDumbBlobStore blobStore; + private MemoryBlobStoreDAO blobStore; @BeforeEach void setUp() { - blobStore = new MemoryDumbBlobStore(); + blobStore = new MemoryBlobStoreDAO(); } @Override - public DumbBlobStore testee() { + public BlobStoreDAO testee() { return blobStore; } } diff --git a/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3DumbBlobStore.java b/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAO.java similarity index 98% rename from server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3DumbBlobStore.java rename to server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAO.java index 7978ef0..1cbcceb 100644 --- a/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3DumbBlobStore.java +++ b/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAO.java @@ -33,8 +33,8 @@ import javax.inject.Inject; import org.apache.commons.io.IOUtils; import org.apache.james.blob.api.BlobId; +import org.apache.james.blob.api.BlobStoreDAO; import org.apache.james.blob.api.BucketName; -import org.apache.james.blob.api.DumbBlobStore; import org.apache.james.blob.api.ObjectNotFoundException; import org.apache.james.blob.api.ObjectStoreIOException; import org.apache.james.lifecycle.api.Startable; @@ -76,7 +76,7 @@ import software.amazon.awssdk.services.s3.model.ObjectIdentifier; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.S3Object; -public class S3DumbBlobStore implements DumbBlobStore, Startable, Closeable { +public class S3BlobStoreDAO implements BlobStoreDAO, Startable, Closeable { private static final int CHUNK_SIZE = 1024 * 1024; private static final int EMPTY_BUCKET_BATCH_SIZE = 1000; @@ -89,7 +89,7 @@ public class S3DumbBlobStore implements DumbBlobStore, Startable, Closeable { private final InstrumentedPool<S3AsyncClient> clientPool; @Inject - S3DumbBlobStore(AwsS3AuthConfiguration configuration, Region region) { + S3BlobStoreDAO(AwsS3AuthConfiguration configuration, Region region) { S3Configuration pathStyleAccess = S3Configuration.builder() .pathStyleAccessEnabled(true) .build(); diff --git a/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3DumbBlobStoreTest.java b/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAOTest.java similarity index 85% rename from server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3DumbBlobStoreTest.java rename to server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAOTest.java index 4cb6ab6..5d41e9f 100644 --- a/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3DumbBlobStoreTest.java +++ b/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreDAOTest.java @@ -18,16 +18,16 @@ ****************************************************************/ package org.apache.james.blob.objectstorage.aws; -import org.apache.james.blob.api.DumbBlobStore; -import org.apache.james.blob.api.DumbBlobStoreContract; +import org.apache.james.blob.api.BlobStoreDAO; +import org.apache.james.blob.api.BlobStoreDAOContract; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(DockerAwsS3Extension.class) -public class S3DumbBlobStoreTest implements DumbBlobStoreContract { - private static S3DumbBlobStore testee; +public class S3BlobStoreDAOTest implements BlobStoreDAOContract { + private static S3BlobStoreDAO testee; @BeforeAll static void setUp(DockerAwsS3Container dockerAwsS3) { @@ -37,7 +37,7 @@ public class S3DumbBlobStoreTest implements DumbBlobStoreContract { .secretKey(DockerAwsS3Container.SECRET_ACCESS_KEY) .build(); - testee = new S3DumbBlobStore(configuration, dockerAwsS3.dockerAwsS3().region()); + testee = new S3BlobStoreDAO(configuration, dockerAwsS3.dockerAwsS3().region()); } @AfterEach @@ -51,7 +51,7 @@ public class S3DumbBlobStoreTest implements DumbBlobStoreContract { } @Override - public DumbBlobStore testee() { + public BlobStoreDAO testee() { return testee; } } diff --git a/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3DeDuplicationBlobStoreTest.java b/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3DeDuplicationBlobStoreTest.java index 6bc1d34..df5b621 100644 --- a/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3DeDuplicationBlobStoreTest.java +++ b/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3DeDuplicationBlobStoreTest.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.extension.ExtendWith; class S3DeDuplicationBlobStoreTest implements BlobStoreContract { private static BlobStore testee; - private static S3DumbBlobStore s3DumbBlobStore; + private static S3BlobStoreDAO s3BlobStoreDAO; @BeforeAll static void setUpClass(DockerAwsS3Container dockerAwsS3) { @@ -43,9 +43,9 @@ class S3DeDuplicationBlobStoreTest implements BlobStoreContract { .secretKey(DockerAwsS3Container.SECRET_ACCESS_KEY) .build(); - s3DumbBlobStore = new S3DumbBlobStore(configuration, dockerAwsS3.dockerAwsS3().region()); + s3BlobStoreDAO = new S3BlobStoreDAO(configuration, dockerAwsS3.dockerAwsS3().region()); testee = BlobStoreFactory.builder() - .dumbBlobStore(s3DumbBlobStore) + .blobStoreDAO(s3BlobStoreDAO) .blobIdFactory(new HashBlobId.Factory()) .defaultBucketName() .passthrough(); @@ -53,12 +53,12 @@ class S3DeDuplicationBlobStoreTest implements BlobStoreContract { @AfterEach void tearDown() { - s3DumbBlobStore.deleteAllBuckets().block(); + s3BlobStoreDAO.deleteAllBuckets().block(); } @AfterAll static void tearDownClass() { - s3DumbBlobStore.close(); + s3BlobStoreDAO.close(); } @Override diff --git a/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3PassThroughBlobStoreTest.java b/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3PassThroughBlobStoreTest.java index 71027d9..58e0189 100644 --- a/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3PassThroughBlobStoreTest.java +++ b/server/blob/blob-s3/src/test/java/org/apache/james/blob/objectstorage/aws/S3PassThroughBlobStoreTest.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.extension.ExtendWith; class S3PassThroughBlobStoreTest implements BlobStoreContract { private static BlobStore testee; - private static S3DumbBlobStore s3DumbBlobStore; + private static S3BlobStoreDAO s3BlobStoreDAO; @BeforeAll static void setUpClass(DockerAwsS3Container dockerAwsS3) { @@ -43,9 +43,9 @@ class S3PassThroughBlobStoreTest implements BlobStoreContract { .secretKey(DockerAwsS3Container.SECRET_ACCESS_KEY) .build(); - s3DumbBlobStore = new S3DumbBlobStore(configuration, dockerAwsS3.dockerAwsS3().region()); + s3BlobStoreDAO = new S3BlobStoreDAO(configuration, dockerAwsS3.dockerAwsS3().region()); testee = BlobStoreFactory.builder() - .dumbBlobStore(s3DumbBlobStore) + .blobStoreDAO(s3BlobStoreDAO) .blobIdFactory(new HashBlobId.Factory()) .defaultBucketName() .deduplication(); @@ -53,12 +53,12 @@ class S3PassThroughBlobStoreTest implements BlobStoreContract { @AfterEach void tearDown() { - s3DumbBlobStore.deleteAllBuckets().block(); + s3BlobStoreDAO.deleteAllBuckets().block(); } @AfterAll static void tearDownClass() { - s3DumbBlobStore.close(); + s3BlobStoreDAO.close(); } @Override diff --git a/server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobStoreFactory.java b/server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobStoreFactory.java index 4a3fdc3..a8e1ef6 100644 --- a/server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobStoreFactory.java +++ b/server/blob/blob-storage-strategy/src/main/java/org/apache/james/server/blob/deduplication/BlobStoreFactory.java @@ -21,13 +21,13 @@ package org.apache.james.server.blob.deduplication; import org.apache.james.blob.api.BlobId; import org.apache.james.blob.api.BlobStore; +import org.apache.james.blob.api.BlobStoreDAO; import org.apache.james.blob.api.BucketName; -import org.apache.james.blob.api.DumbBlobStore; public abstract class BlobStoreFactory { @FunctionalInterface - public interface RequireDumbBlobStore { - RequireBlobIdFactory dumbBlobStore(DumbBlobStore dumbBlobStore); + public interface RequireBlobStoreDAO { + RequireBlobIdFactory blobStoreDAO(BlobStoreDAO blobStoreDAO); } @FunctionalInterface @@ -57,13 +57,13 @@ public abstract class BlobStoreFactory { } } - public static RequireDumbBlobStore builder() { - return dumbBlobStore -> blobIdFactory -> defaultBucketName -> storageStrategy -> { + public static RequireBlobStoreDAO builder() { + return blobStoreDAO -> blobIdFactory -> defaultBucketName -> storageStrategy -> { switch (storageStrategy) { case PASSTHROUGH: - return new PassThroughBlobStore(dumbBlobStore, defaultBucketName, blobIdFactory); + return new PassThroughBlobStore(blobStoreDAO, defaultBucketName, blobIdFactory); case DEDUPLICATION: - return new DeDuplicationBlobStore(dumbBlobStore, defaultBucketName, blobIdFactory); + return new DeDuplicationBlobStore(blobStoreDAO, defaultBucketName, blobIdFactory); default: throw new IllegalArgumentException("Unknown storage strategy"); } diff --git a/server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/DeDuplicationBlobStore.scala b/server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/DeDuplicationBlobStore.scala index c012e6e..15c8c90 100644 --- a/server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/DeDuplicationBlobStore.scala +++ b/server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/DeDuplicationBlobStore.scala @@ -26,7 +26,7 @@ import com.google.common.hash.{Hashing, HashingInputStream} import com.google.common.io.{ByteSource, FileBackedOutputStream} import javax.inject.{Inject, Named} import org.apache.commons.io.IOUtils -import org.apache.james.blob.api.{BlobId, BlobStore, BucketName, DumbBlobStore} +import org.apache.james.blob.api.{BlobId, BlobStore, BlobStoreDAO, BucketName} import org.reactivestreams.Publisher import reactor.core.publisher.Mono import reactor.core.scala.publisher.SMono @@ -38,7 +38,7 @@ object DeDuplicationBlobStore { val FILE_THRESHOLD = 10000 } -class DeDuplicationBlobStore @Inject()(dumbBlobStore: DumbBlobStore, +class DeDuplicationBlobStore @Inject()(blobStoreDAO: BlobStoreDAO, @Named("defaultBucket") defaultBucketName: BucketName, blobIdFactory: BlobId.Factory) extends BlobStore { @@ -48,7 +48,7 @@ class DeDuplicationBlobStore @Inject()(dumbBlobStore: DumbBlobStore, val blobId = blobIdFactory.forPayload(data) - SMono(dumbBlobStore.save(bucketName, blobId, data)) + SMono(blobStoreDAO.save(bucketName, blobId, data)) .`then`(SMono.just(blobId)) } @@ -69,26 +69,26 @@ class DeDuplicationBlobStore @Inject()(dumbBlobStore: DumbBlobStore, Tuples.of(blobIdFactory.from(hashingInputStream.hash.toString), fileBackedOutputStream.asByteSource) }) .flatMap((tuple: Tuple2[BlobId, ByteSource]) => - SMono(dumbBlobStore.save(bucketName, tuple.getT1, tuple.getT2)) + SMono(blobStoreDAO.save(bucketName, tuple.getT1, tuple.getT2)) .`then`(SMono.just(tuple.getT1))) override def readBytes(bucketName: BucketName, blobId: BlobId): Publisher[Array[Byte]] = { Preconditions.checkNotNull(bucketName) - dumbBlobStore.readBytes(bucketName, blobId) + blobStoreDAO.readBytes(bucketName, blobId) } override def read(bucketName: BucketName, blobId: BlobId): InputStream = { Preconditions.checkNotNull(bucketName) - dumbBlobStore.read(bucketName, blobId) + blobStoreDAO.read(bucketName, blobId) } override def getDefaultBucketName: BucketName = defaultBucketName override def deleteBucket(bucketName: BucketName): Publisher[Void] = { - dumbBlobStore.deleteBucket(bucketName) + blobStoreDAO.deleteBucket(bucketName) } override def delete(bucketName: BucketName, blobId: BlobId): Publisher[Void] = { diff --git a/server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/PassThroughBlobStore.scala b/server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/PassThroughBlobStore.scala index 5f29ffd..406df50 100644 --- a/server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/PassThroughBlobStore.scala +++ b/server/blob/blob-storage-strategy/src/main/scala/org/apache/james/server/blob/deduplication/PassThroughBlobStore.scala @@ -23,12 +23,12 @@ import java.io.InputStream import com.google.common.base.Preconditions import javax.inject.{Inject, Named} -import org.apache.james.blob.api.{BlobId, BlobStore, BucketName, DumbBlobStore} +import org.apache.james.blob.api.{BlobId, BlobStore, BlobStoreDAO, BucketName} import org.reactivestreams.Publisher import reactor.core.scala.publisher.SMono -class PassThroughBlobStore @Inject()(dumbBlobStore: DumbBlobStore, +class PassThroughBlobStore @Inject()(blobStoreDAO: BlobStoreDAO, @Named("defaultBucket") defaultBucketName: BucketName, blobIdFactory: BlobId.Factory) extends BlobStore { @@ -38,7 +38,7 @@ class PassThroughBlobStore @Inject()(dumbBlobStore: DumbBlobStore, val blobId = blobIdFactory.randomId() - SMono(dumbBlobStore.save(bucketName, blobId, data)) + SMono(blobStoreDAO.save(bucketName, blobId, data)) .`then`(SMono.just(blobId)) } @@ -47,32 +47,32 @@ class PassThroughBlobStore @Inject()(dumbBlobStore: DumbBlobStore, Preconditions.checkNotNull(data) val blobId = blobIdFactory.randomId() - SMono(dumbBlobStore.save(bucketName, blobId, data)) + SMono(blobStoreDAO.save(bucketName, blobId, data)) .`then`(SMono.just(blobId)) } override def readBytes(bucketName: BucketName, blobId: BlobId): Publisher[Array[Byte]] = { Preconditions.checkNotNull(bucketName) - dumbBlobStore.readBytes(bucketName, blobId) + blobStoreDAO.readBytes(bucketName, blobId) } override def read(bucketName: BucketName, blobId: BlobId): InputStream = { Preconditions.checkNotNull(bucketName) - dumbBlobStore.read(bucketName, blobId) + blobStoreDAO.read(bucketName, blobId) } override def getDefaultBucketName: BucketName = defaultBucketName override def deleteBucket(bucketName: BucketName): Publisher[Void] = { - dumbBlobStore.deleteBucket(bucketName) + blobStoreDAO.deleteBucket(bucketName) } override def delete(bucketName: BucketName, blobId: BlobId): Publisher[Void] = { Preconditions.checkNotNull(bucketName) Preconditions.checkNotNull(blobId) - dumbBlobStore.delete(bucketName, blobId) + blobStoreDAO.delete(bucketName, blobId) } } diff --git a/server/container/guice/blob-memory-guice/src/main/java/org/apache/james/modules/BlobMemoryModule.java b/server/container/guice/blob-memory-guice/src/main/java/org/apache/james/modules/BlobMemoryModule.java index 6e912bc..fd1c9df 100644 --- a/server/container/guice/blob-memory-guice/src/main/java/org/apache/james/modules/BlobMemoryModule.java +++ b/server/container/guice/blob-memory-guice/src/main/java/org/apache/james/modules/BlobMemoryModule.java @@ -21,10 +21,10 @@ package org.apache.james.modules; import org.apache.james.blob.api.BlobId; import org.apache.james.blob.api.BlobStore; +import org.apache.james.blob.api.BlobStoreDAO; import org.apache.james.blob.api.BucketName; -import org.apache.james.blob.api.DumbBlobStore; import org.apache.james.blob.api.HashBlobId; -import org.apache.james.blob.memory.MemoryDumbBlobStore; +import org.apache.james.blob.memory.MemoryBlobStoreDAO; import org.apache.james.server.blob.deduplication.DeDuplicationBlobStore; import com.google.inject.AbstractModule; @@ -41,8 +41,8 @@ public class BlobMemoryModule extends AbstractModule { bind(DeDuplicationBlobStore.class).in(Scopes.SINGLETON); bind(BlobStore.class).to(DeDuplicationBlobStore.class); - bind(MemoryDumbBlobStore.class).in(Scopes.SINGLETON); - bind(DumbBlobStore.class).to(MemoryDumbBlobStore.class); + bind(MemoryBlobStoreDAO.class).in(Scopes.SINGLETON); + bind(BlobStoreDAO.class).to(MemoryBlobStoreDAO.class); bind(BucketName.class) .annotatedWith(Names.named(DeDuplicationBlobStore.DEFAULT_BUCKET())) diff --git a/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreModule.java b/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreModule.java index f56892c..02103be 100644 --- a/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreModule.java +++ b/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreModule.java @@ -29,7 +29,7 @@ import org.apache.james.blob.api.BucketName; import org.apache.james.blob.objectstorage.aws.AwsS3AuthConfiguration; import org.apache.james.blob.objectstorage.aws.Region; import org.apache.james.blob.objectstorage.aws.S3BlobStoreConfiguration; -import org.apache.james.blob.objectstorage.aws.S3DumbBlobStore; +import org.apache.james.blob.objectstorage.aws.S3BlobStoreDAO; import org.apache.james.modules.mailbox.ConfigurationComponent; import org.apache.james.utils.InitializationOperation; import org.apache.james.utils.InitilizationOperationBuilder; @@ -71,9 +71,9 @@ public class S3BlobStoreModule extends AbstractModule { } @ProvidesIntoSet - InitializationOperation startS3DumbBlobStore(S3DumbBlobStore s3DumbBlobStore) { + InitializationOperation startS3BlobStoreDAO(S3BlobStoreDAO s3BlobStoreDAO) { return InitilizationOperationBuilder - .forClass(S3DumbBlobStore.class) - .init(s3DumbBlobStore::start); + .forClass(S3BlobStoreDAO.class) + .init(s3BlobStoreDAO::start); } } diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDependenciesModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDependenciesModule.java index 22dfc63..d5570de 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDependenciesModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreDependenciesModule.java @@ -22,9 +22,9 @@ package org.apache.james.modules.mailbox; import org.apache.james.backends.cassandra.components.CassandraModule; import org.apache.james.blob.api.BucketName; import org.apache.james.blob.cassandra.CassandraBlobModule; +import org.apache.james.blob.cassandra.CassandraBlobStoreDAO; import org.apache.james.blob.cassandra.CassandraBlobStoreFactory; import org.apache.james.blob.cassandra.CassandraDefaultBucketDAO; -import org.apache.james.blob.cassandra.CassandraDumbBlobStore; import org.apache.james.server.blob.deduplication.DeDuplicationBlobStore; import com.google.inject.AbstractModule; @@ -37,7 +37,7 @@ public class CassandraBlobStoreDependenciesModule extends AbstractModule { protected void configure() { bind(CassandraDefaultBucketDAO.class).in(Scopes.SINGLETON); bind(CassandraBlobStoreFactory.class).in(Scopes.SINGLETON); - bind(CassandraDumbBlobStore.class).in(Scopes.SINGLETON); + bind(CassandraBlobStoreDAO.class).in(Scopes.SINGLETON); bind(BucketName.class) .annotatedWith(Names.named(DeDuplicationBlobStore.DEFAULT_BUCKET())) diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java index 23f4981..abbe239 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraBlobStoreModule.java @@ -20,9 +20,9 @@ package org.apache.james.modules.mailbox; import org.apache.james.blob.api.BlobStore; -import org.apache.james.blob.api.DumbBlobStore; +import org.apache.james.blob.api.BlobStoreDAO; import org.apache.james.blob.api.MetricableBlobStore; -import org.apache.james.blob.cassandra.CassandraDumbBlobStore; +import org.apache.james.blob.cassandra.CassandraBlobStoreDAO; import org.apache.james.server.blob.deduplication.DeDuplicationBlobStore; import com.google.inject.AbstractModule; @@ -32,10 +32,10 @@ import com.google.inject.name.Names; public class CassandraBlobStoreModule extends AbstractModule { @Override protected void configure() { - bind(CassandraDumbBlobStore.class).in(Scopes.SINGLETON); + bind(CassandraBlobStoreDAO.class).in(Scopes.SINGLETON); bind(DeDuplicationBlobStore.class).in(Scopes.SINGLETON); - bind(DumbBlobStore.class).to(CassandraDumbBlobStore.class); + bind(BlobStoreDAO.class).to(CassandraBlobStoreDAO.class); bind(BlobStore.class) .annotatedWith(Names.named(MetricableBlobStore.BLOB_STORE_IMPLEMENTATION)) .to(DeDuplicationBlobStore.class); diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/blobstore/BlobStoreModulesChooser.java b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/blobstore/BlobStoreModulesChooser.java index 0aab073..0dfbdcd 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/blobstore/BlobStoreModulesChooser.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/main/java/org/apache/james/modules/blobstore/BlobStoreModulesChooser.java @@ -22,10 +22,10 @@ package org.apache.james.modules.blobstore; import java.util.List; import org.apache.james.blob.api.BlobStore; -import org.apache.james.blob.api.DumbBlobStore; -import org.apache.james.blob.cassandra.CassandraDumbBlobStore; +import org.apache.james.blob.api.BlobStoreDAO; +import org.apache.james.blob.cassandra.CassandraBlobStoreDAO; import org.apache.james.blob.cassandra.cache.CachedBlobStore; -import org.apache.james.blob.objectstorage.aws.S3DumbBlobStore; +import org.apache.james.blob.objectstorage.aws.S3BlobStoreDAO; import org.apache.james.eventsourcing.Event; import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTO; import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTOModule; @@ -48,21 +48,21 @@ import com.google.inject.multibindings.Multibinder; import com.google.inject.name.Names; public class BlobStoreModulesChooser { - static class CassandraDumbBlobStoreDeclarationModule extends AbstractModule { + static class CassandraBlobStoreDAODeclarationModule extends AbstractModule { @Override protected void configure() { install(new CassandraBlobStoreDependenciesModule()); - bind(DumbBlobStore.class).to(CassandraDumbBlobStore.class); + bind(BlobStoreDAO.class).to(CassandraBlobStoreDAO.class); } } - static class ObjectStorageDumdBlobStoreDeclarationModule extends AbstractModule { + static class ObjectStorageBlobStoreDAODeclarationModule extends AbstractModule { @Override protected void configure() { install(new S3BlobStoreModule()); - bind(DumbBlobStore.class).to(S3DumbBlobStore.class); + bind(BlobStoreDAO.class).to(S3BlobStoreDAO.class); } } @@ -90,18 +90,18 @@ public class BlobStoreModulesChooser { @VisibleForTesting public static List<Module> chooseModules(BlobStoreConfiguration choosingConfiguration) { return ImmutableList.<Module>builder() - .add(chooseDumBlobStoreModule(choosingConfiguration.getImplementation())) + .add(chooseBlobStoreDAOModule(choosingConfiguration.getImplementation())) .add(chooseStoragePolicyModule(choosingConfiguration.storageStrategy())) .add(new StoragePolicyConfigurationSanityEnforcementModule(choosingConfiguration)) .build(); } - public static Module chooseDumBlobStoreModule(BlobStoreConfiguration.BlobStoreImplName implementation) { + public static Module chooseBlobStoreDAOModule(BlobStoreConfiguration.BlobStoreImplName implementation) { switch (implementation) { case CASSANDRA: - return new CassandraDumbBlobStoreDeclarationModule(); + return new CassandraBlobStoreDAODeclarationModule(); case S3: - return new ObjectStorageDumdBlobStoreDeclarationModule(); + return new ObjectStorageBlobStoreDAODeclarationModule(); default: throw new RuntimeException("Unsupported blobStore implementation " + implementation); } diff --git a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/modules/blobstore/BlobStoreModulesChooserTest.java b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/modules/blobstore/BlobStoreModulesChooserTest.java index ad21dd9..51f1cd1 100644 --- a/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/modules/blobstore/BlobStoreModulesChooserTest.java +++ b/server/container/guice/cassandra-rabbitmq-guice/src/test/java/org/apache/james/modules/blobstore/BlobStoreModulesChooserTest.java @@ -32,7 +32,7 @@ class BlobStoreModulesChooserTest { .disableCache() .deduplication())) .first() - .isInstanceOf(BlobStoreModulesChooser.ObjectStorageDumdBlobStoreDeclarationModule.class); + .isInstanceOf(BlobStoreModulesChooser.ObjectStorageBlobStoreDAODeclarationModule.class); } @Test @@ -42,6 +42,6 @@ class BlobStoreModulesChooserTest { .disableCache() .passthrough())) .first() - .isInstanceOf(BlobStoreModulesChooser.CassandraDumbBlobStoreDeclarationModule.class); + .isInstanceOf(BlobStoreModulesChooser.CassandraBlobStoreDAODeclarationModule.class); } } \ No newline at end of file diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRoutesTest.java index cfdb6b3..6e97a84 100644 --- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRoutesTest.java +++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRoutesTest.java @@ -76,7 +76,7 @@ import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.BucketName; import org.apache.james.blob.api.HashBlobId; import org.apache.james.blob.export.api.BlobExportMechanism; -import org.apache.james.blob.memory.MemoryDumbBlobStore; +import org.apache.james.blob.memory.MemoryBlobStoreDAO; import org.apache.james.core.Domain; import org.apache.james.core.MailAddress; import org.apache.james.core.MaybeSender; @@ -182,15 +182,15 @@ class DeletedMessagesVaultRoutesTest { @BeforeEach void beforeEach() throws Exception { blobIdFactory = new HashBlobId.Factory(); - MemoryDumbBlobStore dumbBlobStore = new MemoryDumbBlobStore(); + MemoryBlobStoreDAO blobStoreDAO = new MemoryBlobStoreDAO(); blobStore = spy(BlobStoreFactory.builder() - .dumbBlobStore(dumbBlobStore) + .blobStoreDAO(blobStoreDAO) .blobIdFactory(blobIdFactory) .defaultBucketName() .passthrough()); clock = new UpdatableTickingClock(OLD_DELETION_DATE.toInstant()); vault = spy(new BlobStoreDeletedMessageVault(new RecordingMetricFactory(), new MemoryDeletedMessageMetadataVault(), - blobStore, dumbBlobStore, new BucketNameGenerator(clock), clock, + blobStore, blobStoreDAO, new BucketNameGenerator(clock), clock, RetentionConfiguration.DEFAULT)); InMemoryIntegrationResources inMemoryResource = InMemoryIntegrationResources.defaultResources(); mailboxManager = spy(inMemoryResource.getMailboxManager()); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
