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]
