You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2018/08/29 14:24:07 UTC

[2/5] james-project git commit: JAMES-2525 renames ObjectStore to BlobStore

JAMES-2525 renames ObjectStore to BlobStore

This aligns the interface name with the corresponding module. It also
frees the name `ObjectStore` for use by the blob-objectstorage module


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/2dec9cf3
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/2dec9cf3
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/2dec9cf3

Branch: refs/heads/master
Commit: 2dec9cf37e68ff59617f50f97019776a02020cb8
Parents: 8443ade
Author: Jean Helou <jh...@codamens.fr>
Authored: Tue Aug 28 16:03:29 2018 +0200
Committer: Jean Helou <jh...@codamens.fr>
Committed: Wed Aug 29 15:41:52 2018 +0200

----------------------------------------------------------------------
 .../CassandraMailboxSessionMapperFactory.java   |  10 +-
 .../mail/CassandraAttachmentMapper.java         |  14 +-
 .../cassandra/mail/CassandraMessageDAO.java     |  18 +--
 .../mail/migration/AttachmentV2Migration.java   |  10 +-
 .../CassandraSubscriptionManagerTest.java       |   6 +-
 .../cassandra/mail/utils/GuiceUtils.java        |   4 +-
 .../org/apache/james/blob/api/BlobStore.java    |  33 ++++
 .../org/apache/james/blob/api/ObjectStore.java  |  33 ----
 .../james/blob/api/BlobStoreContract.java       | 162 +++++++++++++++++++
 .../james/blob/api/ObjectStoreContract.java     | 162 -------------------
 .../james/blob/cassandra/CassandraBlobsDAO.java |   4 +-
 .../blob/cassandra/CassandraBlobsDAOTest.java   |   8 +-
 .../mailbox/CassandraObjectStoreModule.java     |   4 +-
 .../cassandra/CassandraMailRepository.java      |  16 +-
 .../CassandraMailRepositoryProvider.java        |  10 +-
 15 files changed, 247 insertions(+), 247 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
index 0eda3c3..1015608 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java
@@ -23,7 +23,7 @@ import javax.inject.Inject;
 
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
-import org.apache.james.blob.api.ObjectStore;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.cassandra.mail.CassandraACLMapper;
 import org.apache.james.mailbox.cassandra.mail.CassandraAnnotationMapper;
@@ -87,7 +87,7 @@ public class CassandraMailboxSessionMapperFactory extends MailboxSessionMapperFa
     private final CassandraAttachmentDAO attachmentDAO;
     private final CassandraAttachmentDAOV2 attachmentDAOV2;
     private final CassandraDeletedMessageDAO deletedMessageDAO;
-    private final ObjectStore objectStore;
+    private final BlobStore blobStore;
     private final CassandraAttachmentMessageIdDAO attachmentMessageIdDAO;
     private final CassandraAttachmentOwnerDAO ownerDAO;
     private final CassandraACLMapper aclMapper;
@@ -102,7 +102,7 @@ public class CassandraMailboxSessionMapperFactory extends MailboxSessionMapperFa
                                                 CassandraMailboxCounterDAO mailboxCounterDAO, CassandraMailboxRecentsDAO mailboxRecentsDAO, CassandraMailboxDAO mailboxDAO,
                                                 CassandraMailboxPathDAOImpl mailboxPathDAO, CassandraMailboxPathV2DAO mailboxPathV2DAO, CassandraFirstUnseenDAO firstUnseenDAO, CassandraApplicableFlagDAO applicableFlagDAO,
                                                 CassandraAttachmentDAO attachmentDAO, CassandraAttachmentDAOV2 attachmentDAOV2, CassandraDeletedMessageDAO deletedMessageDAO,
-                                                ObjectStore objectStore, CassandraAttachmentMessageIdDAO attachmentMessageIdDAO,
+                                                BlobStore blobStore, CassandraAttachmentMessageIdDAO attachmentMessageIdDAO,
                                                 CassandraAttachmentOwnerDAO ownerDAO, CassandraACLMapper aclMapper,
                                                 CassandraUserMailboxRightsDAO userMailboxRightsDAO,
                                                 CassandraUtils cassandraUtils, CassandraConfiguration cassandraConfiguration) {
@@ -122,7 +122,7 @@ public class CassandraMailboxSessionMapperFactory extends MailboxSessionMapperFa
         this.attachmentDAOV2 = attachmentDAOV2;
         this.deletedMessageDAO = deletedMessageDAO;
         this.applicableFlagDAO = applicableFlagDAO;
-        this.objectStore = objectStore;
+        this.blobStore = blobStore;
         this.attachmentMessageIdDAO = attachmentMessageIdDAO;
         this.aclMapper = aclMapper;
         this.userMailboxRightsDAO = userMailboxRightsDAO;
@@ -171,7 +171,7 @@ public class CassandraMailboxSessionMapperFactory extends MailboxSessionMapperFa
 
     @Override
     public CassandraAttachmentMapper createAttachmentMapper(MailboxSession mailboxSession) {
-        return new CassandraAttachmentMapper(attachmentDAO, attachmentDAOV2, objectStore, attachmentMessageIdDAO, ownerDAO);
+        return new CassandraAttachmentMapper(attachmentDAO, attachmentDAOV2, blobStore, attachmentMessageIdDAO, ownerDAO);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
index 75023e5..7975b35 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
@@ -28,7 +28,7 @@ import java.util.stream.Stream;
 
 import javax.inject.Inject;
 
-import org.apache.james.blob.api.ObjectStore;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.mailbox.cassandra.mail.CassandraAttachmentDAOV2.DAOAttachment;
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.MailboxException;
@@ -50,15 +50,15 @@ public class CassandraAttachmentMapper implements AttachmentMapper {
 
     private final CassandraAttachmentDAO attachmentDAO;
     private final CassandraAttachmentDAOV2 attachmentDAOV2;
-    private final ObjectStore objectStore;
+    private final BlobStore blobStore;
     private final CassandraAttachmentMessageIdDAO attachmentMessageIdDAO;
     private final CassandraAttachmentOwnerDAO ownerDAO;
 
     @Inject
-    public CassandraAttachmentMapper(CassandraAttachmentDAO attachmentDAO, CassandraAttachmentDAOV2 attachmentDAOV2, ObjectStore objectStore, CassandraAttachmentMessageIdDAO attachmentMessageIdDAO, CassandraAttachmentOwnerDAO ownerDAO) {
+    public CassandraAttachmentMapper(CassandraAttachmentDAO attachmentDAO, CassandraAttachmentDAOV2 attachmentDAOV2, BlobStore blobStore, CassandraAttachmentMessageIdDAO attachmentMessageIdDAO, CassandraAttachmentOwnerDAO ownerDAO) {
         this.attachmentDAO = attachmentDAO;
         this.attachmentDAOV2 = attachmentDAOV2;
-        this.objectStore = objectStore;
+        this.blobStore = blobStore;
         this.attachmentMessageIdDAO = attachmentMessageIdDAO;
         this.ownerDAO = ownerDAO;
     }
@@ -85,7 +85,7 @@ public class CassandraAttachmentMapper implements AttachmentMapper {
             return CompletableFuture.completedFuture(Optional.empty());
         }
         DAOAttachment daoAttachment = daoAttachmentOptional.get();
-        return objectStore.readBytes(daoAttachment.getBlobId())
+        return blobStore.readBytes(daoAttachment.getBlobId())
             .thenApply(bytes -> Optional.of(daoAttachment.toAttachment(bytes)));
     }
 
@@ -124,7 +124,7 @@ public class CassandraAttachmentMapper implements AttachmentMapper {
     @Override
     public void storeAttachmentForOwner(Attachment attachment, Username owner) throws MailboxException {
         ownerDAO.addOwner(attachment.getAttachmentId(), owner)
-            .thenCompose(any -> objectStore.save(attachment.getBytes()))
+            .thenCompose(any -> blobStore.save(attachment.getBytes()))
             .thenApply(blobId -> CassandraAttachmentDAOV2.from(attachment, blobId))
             .thenCompose(attachmentDAOV2::storeAttachment)
             .join();
@@ -150,7 +150,7 @@ public class CassandraAttachmentMapper implements AttachmentMapper {
     }
 
     public CompletableFuture<Void> storeAttachmentAsync(Attachment attachment, MessageId ownerMessageId) {
-        return objectStore.save(attachment.getBytes())
+        return blobStore.save(attachment.getBytes())
             .thenApply(blobId -> CassandraAttachmentDAOV2.from(attachment, blobId))
             .thenCompose(daoAttachment -> storeAttachmentWithIndex(daoAttachment, ownerMessageId));
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
index a451adb..1a06cd9 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
@@ -60,7 +60,7 @@ import org.apache.james.backends.cassandra.init.configuration.CassandraConfigura
 import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
 import org.apache.james.blob.api.BlobId;
-import org.apache.james.blob.api.ObjectStore;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
 import org.apache.james.mailbox.cassandra.table.CassandraMessageV2Table;
 import org.apache.james.mailbox.cassandra.table.CassandraMessageV2Table.Attachments;
@@ -102,7 +102,7 @@ public class CassandraMessageDAO {
 
     private final CassandraAsyncExecutor cassandraAsyncExecutor;
     private final CassandraTypesProvider typesProvider;
-    private final ObjectStore objectStore;
+    private final BlobStore blobStore;
     private final BlobId.Factory blobIdFactory;
     private final CassandraConfiguration configuration;
     private final CassandraUtils cassandraUtils;
@@ -117,12 +117,12 @@ public class CassandraMessageDAO {
     private final Cid.CidParser cidParser;
 
     @Inject
-    public CassandraMessageDAO(Session session, CassandraTypesProvider typesProvider, ObjectStore objectStore,
+    public CassandraMessageDAO(Session session, CassandraTypesProvider typesProvider, BlobStore blobStore,
                                BlobId.Factory blobIdFactory, CassandraConfiguration cassandraConfiguration,
             CassandraUtils cassandraUtils, CassandraMessageId.Factory messageIdFactory) {
         this.cassandraAsyncExecutor = new CassandraAsyncExecutor(session);
         this.typesProvider = typesProvider;
-        this.objectStore = objectStore;
+        this.blobStore = blobStore;
         this.blobIdFactory = blobIdFactory;
         this.configuration = cassandraConfiguration;
         this.cassandraUtils = cassandraUtils;
@@ -139,9 +139,9 @@ public class CassandraMessageDAO {
     }
 
     @VisibleForTesting
-    public CassandraMessageDAO(Session session, CassandraTypesProvider typesProvider, ObjectStore objectStore,
+    public CassandraMessageDAO(Session session, CassandraTypesProvider typesProvider, BlobStore blobStore,
                                BlobId.Factory blobIdFactory, CassandraUtils cassandraUtils, CassandraMessageId.Factory messageIdFactory) {
-        this(session, typesProvider, objectStore,  blobIdFactory, CassandraConfiguration.DEFAULT_CONFIGURATION, cassandraUtils, messageIdFactory);
+        this(session, typesProvider, blobStore,  blobIdFactory, CassandraConfiguration.DEFAULT_CONFIGURATION, cassandraUtils, messageIdFactory);
     }
 
     private PreparedStatement prepareSelect(Session session, String[] fields) {
@@ -185,8 +185,8 @@ public class CassandraMessageDAO {
             byte[] headerContent = IOUtils.toByteArray(message.getHeaderContent());
             byte[] bodyContent = IOUtils.toByteArray(message.getBodyContent());
             return CompletableFutureUtil.combine(
-                objectStore.save(headerContent),
-                objectStore.save(bodyContent),
+                blobStore.save(headerContent),
+                blobStore.save(bodyContent),
                 Pair::of);
         } catch (IOException e) {
             throw new MailboxException("Error saving mail content", e);
@@ -372,7 +372,7 @@ public class CassandraMessageDAO {
     }
 
     private CompletableFuture<byte[]> getFieldContent(String field, Row row) {
-        return objectStore.readBytes(blobIdFactory.from(row.getString(field)));
+        return blobStore.readBytes(blobIdFactory.from(row.getString(field)));
     }
 
     public static MessageResult notFound(ComposedMessageIdWithMetaData id) {

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/migration/AttachmentV2Migration.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/migration/AttachmentV2Migration.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/migration/AttachmentV2Migration.java
index 0e074f4..148d395 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/migration/AttachmentV2Migration.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/migration/AttachmentV2Migration.java
@@ -22,7 +22,7 @@ package org.apache.james.mailbox.cassandra.mail.migration;
 import javax.inject.Inject;
 
 import org.apache.james.backends.cassandra.migration.Migration;
-import org.apache.james.blob.api.ObjectStore;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.mailbox.cassandra.mail.CassandraAttachmentDAO;
 import org.apache.james.mailbox.cassandra.mail.CassandraAttachmentDAOV2;
 import org.apache.james.mailbox.model.Attachment;
@@ -34,15 +34,15 @@ public class AttachmentV2Migration implements Migration {
     private static final Logger LOGGER = LoggerFactory.getLogger(AttachmentV2Migration.class);
     private final CassandraAttachmentDAO attachmentDAOV1;
     private final CassandraAttachmentDAOV2 attachmentDAOV2;
-    private final ObjectStore objectStore;
+    private final BlobStore blobStore;
 
     @Inject
     public AttachmentV2Migration(CassandraAttachmentDAO attachmentDAOV1,
                                  CassandraAttachmentDAOV2 attachmentDAOV2,
-                                 ObjectStore objectStore) {
+                                 BlobStore blobStore) {
         this.attachmentDAOV1 = attachmentDAOV1;
         this.attachmentDAOV2 = attachmentDAOV2;
-        this.objectStore = objectStore;
+        this.blobStore = blobStore;
     }
 
     @Override
@@ -59,7 +59,7 @@ public class AttachmentV2Migration implements Migration {
 
     private Result migrateAttachment(Attachment attachment) {
         try {
-            objectStore.save(attachment.getBytes())
+            blobStore.save(attachment.getBytes())
                 .thenApply(blobId -> CassandraAttachmentDAOV2.from(attachment, blobId))
                 .thenCompose(attachmentDAOV2::storeAttachment)
                 .thenCompose(any -> attachmentDAOV1.deleteAttachment(attachment.getAttachmentId()))

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
index 736dcdc..517b85e 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraSubscriptionManagerTest.java
@@ -23,7 +23,7 @@ import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.backends.cassandra.utils.CassandraUtils;
-import org.apache.james.blob.api.ObjectStore;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.mailbox.AbstractSubscriptionManagerTest;
 import org.apache.james.mailbox.SubscriptionManager;
 import org.apache.james.mailbox.cassandra.mail.CassandraACLMapper;
@@ -102,7 +102,7 @@ public class CassandraSubscriptionManagerTest extends AbstractSubscriptionManage
         CassandraAttachmentOwnerDAO ownerDAO = null;
         CassandraACLMapper aclMapper = null;
         CassandraUserMailboxRightsDAO userMailboxRightsDAO = null;
-        ObjectStore objectStore = null;
+        BlobStore blobStore = null;
         CassandraUidProvider uidProvider = null;
         CassandraModSeqProvider modSeqProvider = null;
         return new CassandraSubscriptionManager(
@@ -123,7 +123,7 @@ public class CassandraSubscriptionManagerTest extends AbstractSubscriptionManage
                 attachmentDAO,
                 attachmentDAOV2,
                 deletedMessageDAO,
-                objectStore,
+                blobStore,
                 attachmentMessageIdDAO,
                 ownerDAO,
                 aclMapper,

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
index 8da3d92..795552c 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
@@ -23,7 +23,7 @@ import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.init.CassandraTypesProvider;
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.blob.api.BlobId;
-import org.apache.james.blob.api.ObjectStore;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.blob.api.HashBlobId;
 import org.apache.james.blob.cassandra.CassandraBlobsDAO;
 import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
@@ -49,7 +49,7 @@ public class GuiceUtils {
             Modules.combine(
                 binder -> binder.bind(MessageId.Factory.class).toInstance(messageIdFactory),
                 binder -> binder.bind(BlobId.Factory.class).toInstance(new HashBlobId.Factory()),
-                binder -> binder.bind(ObjectStore.class).to(CassandraBlobsDAO.class),
+                binder -> binder.bind(BlobStore.class).to(CassandraBlobsDAO.class),
                 binder -> binder.bind(Session.class).toInstance(session),
                 binder -> binder.bind(CassandraTypesProvider.class).toInstance(typesProvider),
                 binder -> binder.bind(CassandraConfiguration.class).toInstance(configuration)));

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStore.java
----------------------------------------------------------------------
diff --git a/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStore.java b/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStore.java
new file mode 100644
index 0000000..55527da
--- /dev/null
+++ b/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStore.java
@@ -0,0 +1,33 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.blob.api;
+
+import java.io.InputStream;
+import java.util.concurrent.CompletableFuture;
+
+public interface BlobStore {
+
+    CompletableFuture<BlobId> save(byte[] data);
+
+    CompletableFuture<BlobId> save(InputStream data);
+
+    CompletableFuture<byte[]> readBytes(BlobId blobId);
+
+    InputStream read(BlobId blobId);
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/server/blob/blob-api/src/main/java/org/apache/james/blob/api/ObjectStore.java
----------------------------------------------------------------------
diff --git a/server/blob/blob-api/src/main/java/org/apache/james/blob/api/ObjectStore.java b/server/blob/blob-api/src/main/java/org/apache/james/blob/api/ObjectStore.java
deleted file mode 100644
index 8b22d55..0000000
--- a/server/blob/blob-api/src/main/java/org/apache/james/blob/api/ObjectStore.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.james.blob.api;
-
-import java.io.InputStream;
-import java.util.concurrent.CompletableFuture;
-
-public interface ObjectStore {
-
-    CompletableFuture<BlobId> save(byte[] data);
-
-    CompletableFuture<BlobId> save(InputStream data);
-
-    CompletableFuture<byte[]> readBytes(BlobId blobId);
-
-    InputStream read(BlobId blobId);
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreContract.java
----------------------------------------------------------------------
diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreContract.java
new file mode 100644
index 0000000..40376a1
--- /dev/null
+++ b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/BlobStoreContract.java
@@ -0,0 +1,162 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.blob.api;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.jupiter.api.Test;
+
+import com.google.common.base.Strings;
+
+public interface BlobStoreContract {
+
+    BlobStore testee();
+
+    BlobId.Factory blobIdFactory();
+
+    @Test
+    default void saveShouldReturnEmptyWhenNullData() throws Exception {
+        assertThatThrownBy(() -> testee().save((byte[]) null))
+            .isInstanceOf(NullPointerException.class);
+    }
+
+    @Test
+    default void saveShouldReturnEmptyWhenNullInputStream() throws Exception {
+        assertThatThrownBy(() -> testee().save((InputStream) null))
+            .isInstanceOf(NullPointerException.class);
+    }
+
+    @Test
+    default void saveShouldSaveEmptyData() throws Exception {
+        BlobId blobId = testee().save(new byte[]{}).join();
+
+        byte[] bytes = testee().readBytes(blobId).join();
+
+        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEmpty();
+    }
+
+    @Test
+    default void saveShouldSaveEmptyInputStream() throws Exception {
+        BlobId blobId = testee().save(new ByteArrayInputStream(new byte[]{})).join();
+
+        byte[] bytes = testee().readBytes(blobId).join();
+
+        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEmpty();
+    }
+
+    @Test
+    default void saveShouldReturnBlobId() throws Exception {
+        BlobId blobId = testee().save("toto".getBytes(StandardCharsets.UTF_8)).join();
+
+        assertThat(blobId).isEqualTo(blobIdFactory().from("31f7a65e315586ac198bd798b6629ce4903d0899476d5741a9f32e2e521b6a66"));
+    }
+
+    @Test
+    default void saveShouldReturnBlobIdOfInputStream() throws Exception {
+        BlobId blobId =
+            testee().save(new ByteArrayInputStream("toto".getBytes(StandardCharsets.UTF_8))).join();
+
+        assertThat(blobId).isEqualTo(blobIdFactory().from("31f7a65e315586ac198bd798b6629ce4903d0899476d5741a9f32e2e521b6a66"));
+    }
+
+    @Test
+    default void readBytesShouldBeEmptyWhenNoExisting() throws IOException {
+        byte[] bytes = testee().readBytes(blobIdFactory().from("unknown")).join();
+
+        assertThat(bytes).isEmpty();
+    }
+
+    @Test
+    default void readBytesShouldReturnSavedData() throws IOException {
+        BlobId blobId = testee().save("toto".getBytes(StandardCharsets.UTF_8)).join();
+
+        byte[] bytes = testee().readBytes(blobId).join();
+
+        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEqualTo("toto");
+    }
+
+    @Test
+    default void readBytesShouldReturnLongSavedData() throws IOException {
+        String longString = Strings.repeat("0123456789\n", 1000);
+        BlobId blobId = testee().save(longString.getBytes(StandardCharsets.UTF_8)).join();
+
+        byte[] bytes = testee().readBytes(blobId).join();
+
+        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEqualTo(longString);
+    }
+
+    @Test
+    default void readBytesShouldReturnBigSavedData() throws IOException {
+        // 12 MB of text
+        String bigString = Strings.repeat("0123456789\r\n", 1024 * 1024);
+        BlobId blobId = testee().save(bigString.getBytes(StandardCharsets.UTF_8)).join();
+
+        byte[] bytes = testee().readBytes(blobId).join();
+
+        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEqualTo(bigString);
+    }
+
+    @Test
+    default void readShouldBeEmptyWhenNoExistingStream() throws IOException {
+        InputStream stream = testee().read(blobIdFactory().from("unknown"));
+
+        assertThat(stream.read()).isEqualTo(IOUtils.EOF);
+    }
+
+    @Test
+    default void readShouldReturnSavedData() throws IOException {
+        byte[] bytes = "toto".getBytes(StandardCharsets.UTF_8);
+        BlobId blobId = testee().save(bytes).join();
+
+        InputStream read = testee().read(blobId);
+
+        assertThat(read).hasSameContentAs(new ByteArrayInputStream(bytes));
+    }
+
+    @Test
+    default void readShouldReturnLongSavedData() throws IOException {
+        String longString = Strings.repeat("0123456789\n", 1000);
+        byte[] bytes = longString.getBytes(StandardCharsets.UTF_8);
+        BlobId blobId = testee().save(bytes).join();
+
+        InputStream read = testee().read(blobId);
+
+        assertThat(read).hasSameContentAs(new ByteArrayInputStream(bytes));
+    }
+
+    @Test
+    default void readShouldReturnBigSavedData() throws IOException {
+        // 12 MB of text
+        String bigString = Strings.repeat("0123456789\r\n", 1024 * 1024);
+        byte[] bytes = bigString.getBytes(StandardCharsets.UTF_8);
+        BlobId blobId = testee().save(bytes).join();
+
+        InputStream read = testee().read(blobId);
+
+        assertThat(read).hasSameContentAs(new ByteArrayInputStream(bytes));
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/server/blob/blob-api/src/test/java/org/apache/james/blob/api/ObjectStoreContract.java
----------------------------------------------------------------------
diff --git a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/ObjectStoreContract.java b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/ObjectStoreContract.java
deleted file mode 100644
index dfd7038..0000000
--- a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/ObjectStoreContract.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.blob.api;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.jupiter.api.Test;
-
-import com.google.common.base.Strings;
-
-public interface ObjectStoreContract {
-
-    ObjectStore testee();
-
-    BlobId.Factory blobIdFactory();
-
-    @Test
-    default void saveShouldReturnEmptyWhenNullData() throws Exception {
-        assertThatThrownBy(() -> testee().save((byte[]) null))
-            .isInstanceOf(NullPointerException.class);
-    }
-
-    @Test
-    default void saveShouldReturnEmptyWhenNullInputStream() throws Exception {
-        assertThatThrownBy(() -> testee().save((InputStream) null))
-            .isInstanceOf(NullPointerException.class);
-    }
-
-    @Test
-    default void saveShouldSaveEmptyData() throws Exception {
-        BlobId blobId = testee().save(new byte[]{}).join();
-
-        byte[] bytes = testee().readBytes(blobId).join();
-
-        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEmpty();
-    }
-
-    @Test
-    default void saveShouldSaveEmptyInputStream() throws Exception {
-        BlobId blobId = testee().save(new ByteArrayInputStream(new byte[]{})).join();
-
-        byte[] bytes = testee().readBytes(blobId).join();
-
-        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEmpty();
-    }
-
-    @Test
-    default void saveShouldReturnBlobId() throws Exception {
-        BlobId blobId = testee().save("toto".getBytes(StandardCharsets.UTF_8)).join();
-
-        assertThat(blobId).isEqualTo(blobIdFactory().from("31f7a65e315586ac198bd798b6629ce4903d0899476d5741a9f32e2e521b6a66"));
-    }
-
-    @Test
-    default void saveShouldReturnBlobIdOfInputStream() throws Exception {
-        BlobId blobId =
-            testee().save(new ByteArrayInputStream("toto".getBytes(StandardCharsets.UTF_8))).join();
-
-        assertThat(blobId).isEqualTo(blobIdFactory().from("31f7a65e315586ac198bd798b6629ce4903d0899476d5741a9f32e2e521b6a66"));
-    }
-
-    @Test
-    default void readBytesShouldBeEmptyWhenNoExisting() throws IOException {
-        byte[] bytes = testee().readBytes(blobIdFactory().from("unknown")).join();
-
-        assertThat(bytes).isEmpty();
-    }
-
-    @Test
-    default void readBytesShouldReturnSavedData() throws IOException {
-        BlobId blobId = testee().save("toto".getBytes(StandardCharsets.UTF_8)).join();
-
-        byte[] bytes = testee().readBytes(blobId).join();
-
-        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEqualTo("toto");
-    }
-
-    @Test
-    default void readBytesShouldReturnLongSavedData() throws IOException {
-        String longString = Strings.repeat("0123456789\n", 1000);
-        BlobId blobId = testee().save(longString.getBytes(StandardCharsets.UTF_8)).join();
-
-        byte[] bytes = testee().readBytes(blobId).join();
-
-        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEqualTo(longString);
-    }
-
-    @Test
-    default void readBytesShouldReturnBigSavedData() throws IOException {
-        // 12 MB of text
-        String bigString = Strings.repeat("0123456789\r\n", 1024 * 1024);
-        BlobId blobId = testee().save(bigString.getBytes(StandardCharsets.UTF_8)).join();
-
-        byte[] bytes = testee().readBytes(blobId).join();
-
-        assertThat(new String(bytes, StandardCharsets.UTF_8)).isEqualTo(bigString);
-    }
-
-    @Test
-    default void readShouldBeEmptyWhenNoExistingStream() throws IOException {
-        InputStream stream = testee().read(blobIdFactory().from("unknown"));
-
-        assertThat(stream.read()).isEqualTo(IOUtils.EOF);
-    }
-
-    @Test
-    default void readShouldReturnSavedData() throws IOException {
-        byte[] bytes = "toto".getBytes(StandardCharsets.UTF_8);
-        BlobId blobId = testee().save(bytes).join();
-
-        InputStream read = testee().read(blobId);
-
-        assertThat(read).hasSameContentAs(new ByteArrayInputStream(bytes));
-    }
-
-    @Test
-    default void readShouldReturnLongSavedData() throws IOException {
-        String longString = Strings.repeat("0123456789\n", 1000);
-        byte[] bytes = longString.getBytes(StandardCharsets.UTF_8);
-        BlobId blobId = testee().save(bytes).join();
-
-        InputStream read = testee().read(blobId);
-
-        assertThat(read).hasSameContentAs(new ByteArrayInputStream(bytes));
-    }
-
-    @Test
-    default void readShouldReturnBigSavedData() throws IOException {
-        // 12 MB of text
-        String bigString = Strings.repeat("0123456789\r\n", 1024 * 1024);
-        byte[] bytes = bigString.getBytes(StandardCharsets.UTF_8);
-        BlobId blobId = testee().save(bytes).join();
-
-        InputStream read = testee().read(blobId);
-
-        assertThat(read).hasSameContentAs(new ByteArrayInputStream(bytes));
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobsDAO.java
----------------------------------------------------------------------
diff --git a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobsDAO.java b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobsDAO.java
index ec47e4a..557e927 100644
--- a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobsDAO.java
+++ b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraBlobsDAO.java
@@ -41,8 +41,8 @@ import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
 import org.apache.james.blob.api.BlobId;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.blob.api.HashBlobId;
-import org.apache.james.blob.api.ObjectStore;
 import org.apache.james.blob.api.ObjectStoreException;
 import org.apache.james.blob.cassandra.BlobTable.BlobParts;
 import org.apache.james.blob.cassandra.utils.DataChunker;
@@ -62,7 +62,7 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.primitives.Bytes;
 
-public class CassandraBlobsDAO implements ObjectStore {
+public class CassandraBlobsDAO implements BlobStore {
     private static final Logger LOGGER = LoggerFactory.getLogger(CassandraBlobsDAO.class);
     private final CassandraAsyncExecutor cassandraAsyncExecutor;
     private final PreparedStatement insert;

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobsDAOTest.java
----------------------------------------------------------------------
diff --git a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobsDAOTest.java b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobsDAOTest.java
index 98e4e6e..b50794c 100644
--- a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobsDAOTest.java
+++ b/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/CassandraBlobsDAOTest.java
@@ -30,8 +30,8 @@ import org.apache.james.backends.cassandra.DockerCassandraExtension.DockerCassan
 import org.apache.james.backends.cassandra.init.configuration.CassandraConfiguration;
 import org.apache.james.blob.api.BlobId;
 import org.apache.james.blob.api.HashBlobId;
-import org.apache.james.blob.api.ObjectStore;
-import org.apache.james.blob.api.ObjectStoreContract;
+import org.apache.james.blob.api.BlobStore;
+import org.apache.james.blob.api.BlobStoreContract;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
@@ -42,7 +42,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import com.google.common.base.Strings;
 
 @ExtendWith(DockerCassandraExtension.class)
-public class CassandraBlobsDAOTest implements ObjectStoreContract {
+public class CassandraBlobsDAOTest implements BlobStoreContract {
 
     private static final int CHUNK_SIZE = 10240;
     private static final int MULTIPLE_CHUNK_SIZE = 3;
@@ -75,7 +75,7 @@ public class CassandraBlobsDAOTest implements ObjectStoreContract {
     }
 
     @Override
-    public ObjectStore testee() {
+    public BlobStore testee() {
         return testee;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraObjectStoreModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraObjectStoreModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraObjectStoreModule.java
index ea715f8..671b86e 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraObjectStoreModule.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraObjectStoreModule.java
@@ -21,8 +21,8 @@ package org.apache.james.modules.mailbox;
 
 import org.apache.james.backends.cassandra.components.CassandraModule;
 import org.apache.james.blob.api.BlobId;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.blob.api.HashBlobId;
-import org.apache.james.blob.api.ObjectStore;
 import org.apache.james.blob.cassandra.CassandraBlobModule;
 import org.apache.james.blob.cassandra.CassandraBlobsDAO;
 
@@ -36,7 +36,7 @@ public class CassandraObjectStoreModule extends AbstractModule {
         bind(CassandraBlobsDAO.class).in(Scopes.SINGLETON);
         bind(HashBlobId.Factory.class).in(Scopes.SINGLETON);
 
-        bind(ObjectStore.class).to(CassandraBlobsDAO.class);
+        bind(BlobStore.class).to(CassandraBlobsDAO.class);
         bind(BlobId.Factory.class).to(HashBlobId.Factory.class);
 
         Multibinder<CassandraModule> cassandraDataDefinitions = Multibinder.newSetBinder(binder(), CassandraModule.class);

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java
----------------------------------------------------------------------
diff --git a/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java
index 9074481..dc2db90 100644
--- a/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java
+++ b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepository.java
@@ -38,7 +38,7 @@ import javax.mail.internet.MimeMessage;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.blob.api.BlobId;
-import org.apache.james.blob.api.ObjectStore;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.mailrepository.api.MailKey;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailrepository.api.MailRepositoryUrl;
@@ -56,14 +56,14 @@ public class CassandraMailRepository implements MailRepository {
     private final CassandraMailRepositoryKeysDAO keysDAO;
     private final CassandraMailRepositoryCountDAO countDAO;
     private final CassandraMailRepositoryMailDAO mailDAO;
-    private final ObjectStore objectStore;
+    private final BlobStore blobStore;
 
-    public CassandraMailRepository(MailRepositoryUrl url, CassandraMailRepositoryKeysDAO keysDAO, CassandraMailRepositoryCountDAO countDAO, CassandraMailRepositoryMailDAO mailDAO, ObjectStore objectStore) {
+    public CassandraMailRepository(MailRepositoryUrl url, CassandraMailRepositoryKeysDAO keysDAO, CassandraMailRepositoryCountDAO countDAO, CassandraMailRepositoryMailDAO mailDAO, BlobStore blobStore) {
         this.url = url;
         this.keysDAO = keysDAO;
         this.countDAO = countDAO;
         this.mailDAO = mailDAO;
-        this.objectStore = objectStore;
+        this.blobStore = blobStore;
     }
 
     @Override
@@ -73,8 +73,8 @@ public class CassandraMailRepository implements MailRepository {
             Pair<byte[], byte[]> splitHeaderBody = splitHeaderBody(mail.getMessage());
 
             CompletableFuture<Pair<BlobId, BlobId>> blobIds = CompletableFutureUtil.combine(
-                objectStore.save(splitHeaderBody.getLeft()),
-                objectStore.save(splitHeaderBody.getRight()),
+                blobStore.save(splitHeaderBody.getLeft()),
+                blobStore.save(splitHeaderBody.getRight()),
                 Pair::of);
 
             blobIds.thenCompose(Throwing.function(pair ->
@@ -158,8 +158,8 @@ public class CassandraMailRepository implements MailRepository {
 
     public CompletableFuture<Mail> toMail(CassandraMailRepositoryMailDAO.MailDTO mailDTO) {
         return CompletableFutureUtil.combine(
-            objectStore.readBytes(mailDTO.getHeaderBlobId()),
-            objectStore.readBytes(mailDTO.getBodyBlobId()),
+            blobStore.readBytes(mailDTO.getHeaderBlobId()),
+            blobStore.readBytes(mailDTO.getBodyBlobId()),
             Bytes::concat)
             .thenApply(this::toMimeMessage)
             .thenApply(mimeMessage -> mailDTO.getMailBuilder()

http://git-wip-us.apache.org/repos/asf/james-project/blob/2dec9cf3/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryProvider.java
----------------------------------------------------------------------
diff --git a/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryProvider.java b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryProvider.java
index ddbd1ba..1eb71bb 100644
--- a/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryProvider.java
+++ b/server/mailrepository/mailrepository-cassandra/src/main/java/org/apache/james/mailrepository/cassandra/CassandraMailRepositoryProvider.java
@@ -21,7 +21,7 @@ package org.apache.james.mailrepository.cassandra;
 
 import javax.inject.Inject;
 
-import org.apache.james.blob.api.ObjectStore;
+import org.apache.james.blob.api.BlobStore;
 import org.apache.james.mailrepository.api.MailRepository;
 import org.apache.james.mailrepository.api.MailRepositoryProvider;
 import org.apache.james.mailrepository.api.MailRepositoryUrl;
@@ -30,14 +30,14 @@ public class CassandraMailRepositoryProvider implements MailRepositoryProvider {
     private final CassandraMailRepositoryKeysDAO keysDAO;
     private final CassandraMailRepositoryCountDAO countDAO;
     private final CassandraMailRepositoryMailDAO mailDAO;
-    private final ObjectStore objectStore;
+    private final BlobStore blobStore;
 
     @Inject
-    public CassandraMailRepositoryProvider(CassandraMailRepositoryKeysDAO keysDAO, CassandraMailRepositoryCountDAO countDAO, CassandraMailRepositoryMailDAO mailDAO, ObjectStore objectStore) {
+    public CassandraMailRepositoryProvider(CassandraMailRepositoryKeysDAO keysDAO, CassandraMailRepositoryCountDAO countDAO, CassandraMailRepositoryMailDAO mailDAO, BlobStore blobStore) {
         this.keysDAO = keysDAO;
         this.countDAO = countDAO;
         this.mailDAO = mailDAO;
-        this.objectStore = objectStore;
+        this.blobStore = blobStore;
     }
 
     @Override
@@ -47,6 +47,6 @@ public class CassandraMailRepositoryProvider implements MailRepositoryProvider {
 
     @Override
     public MailRepository provide(MailRepositoryUrl url) {
-        return new CassandraMailRepository(url, keysDAO, countDAO, mailDAO, objectStore);
+        return new CassandraMailRepository(url, keysDAO, countDAO, mailDAO, blobStore);
     }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org