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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to