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]

Reply via email to