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