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 ro...@apache.org on 2019/07/26 07:51:20 UTC

[james-project] 01/32: JAMES-2835 BlobStoreDeletedMessageVault delete() implementation

This is an automated email from the ASF dual-hosted git repository.

rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 2830f7d5b9ff04e4c97e8f5c6ecf2ab26411fe5b
Author: Tran Tien Duc <dt...@linagora.com>
AuthorDate: Thu Jul 18 16:22:50 2019 +0700

    JAMES-2835 BlobStoreDeletedMessageVault delete() implementation
---
 .../vault/blob/BlobStoreDeletedMessageVault.java   | 11 +++++--
 .../blob/BlobStoreDeletedMessageVaultTest.java     | 37 ----------------------
 2 files changed, 9 insertions(+), 39 deletions(-)

diff --git a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVault.java b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVault.java
index e85ab04..0e92855 100644
--- a/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVault.java
+++ b/mailbox/plugin/deleted-messages-vault/src/main/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVault.java
@@ -26,7 +26,6 @@ import java.util.Optional;
 
 import javax.inject.Inject;
 
-import org.apache.commons.lang3.NotImplementedException;
 import org.apache.james.blob.api.BlobStore;
 import org.apache.james.blob.api.BucketName;
 import org.apache.james.core.User;
@@ -48,6 +47,7 @@ import com.google.common.base.Preconditions;
 
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
+import reactor.core.scheduler.Schedulers;
 
 public class BlobStoreDeletedMessageVault implements DeletedMessageVault {
     private static final Logger LOGGER = LoggerFactory.getLogger(BlobStoreDeletedMessageVault.class);
@@ -101,7 +101,14 @@ public class BlobStoreDeletedMessageVault implements DeletedMessageVault {
 
     @Override
     public Publisher<Void> delete(User user, MessageId messageId) {
-        throw new NotImplementedException("Will be implemented later");
+        Preconditions.checkNotNull(user);
+        Preconditions.checkNotNull(messageId);
+
+        return Mono.from(messageMetadataVault.retrieveStorageInformation(user, messageId))
+            .flatMap(storageInformation -> Mono.from(messageMetadataVault.remove(storageInformation.getBucketName(), user, messageId))
+                .thenReturn(storageInformation))
+            .flatMap(storageInformation -> blobStore.delete(storageInformation.getBucketName(), storageInformation.getBlobId()))
+            .subscribeOn(Schedulers.elastic());
     }
 
     @Override
diff --git a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVaultTest.java b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVaultTest.java
index 21fe249..9ba4729 100644
--- a/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVaultTest.java
+++ b/mailbox/plugin/deleted-messages-vault/src/test/java/org/apache/james/vault/blob/BlobStoreDeletedMessageVaultTest.java
@@ -39,7 +39,6 @@ import org.apache.james.vault.DeletedMessageVaultSearchContract;
 import org.apache.james.vault.RetentionConfiguration;
 import org.apache.james.vault.memory.metadata.MemoryDeletedMessageMetadataVault;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import reactor.core.publisher.Mono;
@@ -91,40 +90,4 @@ class BlobStoreDeletedMessageVaultTest implements DeletedMessageVaultContract, D
                 BucketName.of("deleted-messages-2007-12-01"),
                 BucketName.of("deleted-messages-2008-01-01"));
     }
-
-
-    @Disabled("JAMES-2811 need vault.delete() to be implemented because this test uses that method")
-    @Override
-    public void deleteExpiredMessagesTaskShouldCompleteWhenAllMailsDeleted() {
-    }
-
-    @Disabled("Will be implemented later")
-    @Override
-    public void deleteShouldRunSuccessfullyInAConcurrentContext() {
-
-    }
-
-    @Disabled("Will be implemented later")
-    @Override
-    public void searchAllShouldNotReturnDeletedItems() {
-
-    }
-
-    @Disabled("Will be implemented later")
-    @Override
-    public void loadMimeMessageShouldReturnEmptyWhenDeleted() {
-
-    }
-
-    @Disabled("Will be implemented later")
-    @Override
-    public void deleteShouldThrowOnNullMessageId() {
-
-    }
-
-    @Disabled("Will be implemented later")
-    @Override
-    public void deleteShouldThrowOnNullUser() {
-
-    }
 }
\ No newline at end of file


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