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 e45e7b13e194a1faff7992a71cdfa9cdefe33adc Author: Rene Cordier <[email protected]> AuthorDate: Tue Jul 16 11:14:56 2019 +0700 JAMES-2829 object storage implementation of delete blob --- .../apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java | 5 +++-- .../blob/objectstorage/ObjectStorageBlobsDAOAWSCryptoTest.java | 10 ++-------- .../objectstorage/ObjectStorageBlobsDAOAWSNamespaceTest.java | 10 ++-------- .../ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest.java | 10 ++-------- .../blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixTest.java | 10 ++-------- .../james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java | 10 ++-------- .../james/blob/objectstorage/ObjectStorageBlobsDAOTest.java | 10 ++-------- 7 files changed, 15 insertions(+), 50 deletions(-) diff --git a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java index 9beebd6..81acaeb 100644 --- a/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java +++ b/server/blob/blob-objectstorage/src/main/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAO.java @@ -28,7 +28,6 @@ import java.util.function.Supplier; import javax.annotation.PreDestroy; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.NotImplementedException; import org.apache.james.blob.api.BlobId; import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.BucketName; @@ -205,6 +204,8 @@ public class ObjectStorageBlobsDAO implements BlobStore { @Override public Mono<Void> delete(BucketName bucketName, BlobId blobId) { - throw new NotImplementedException("not implemented"); + ObjectStorageBucketName resolvedBucketName = bucketNameResolver.resolve(bucketName); + return Mono.<Void>fromRunnable(() -> blobStore.removeBlob(resolvedBucketName.asString(), blobId.asString())) + .subscribeOn(Schedulers.elastic()); } } diff --git a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSCryptoTest.java b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSCryptoTest.java index 242e8ce..5587bb2 100644 --- a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSCryptoTest.java +++ b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSCryptoTest.java @@ -22,6 +22,7 @@ package org.apache.james.blob.objectstorage; import org.apache.james.blob.api.BlobId; import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.BucketBlobStoreContract; +import org.apache.james.blob.api.DeleteBlobStoreContract; import org.apache.james.blob.api.HashBlobId; import org.apache.james.blob.api.MetricableBlobStore; import org.apache.james.blob.api.MetricableBlobStoreContract; @@ -33,11 +34,10 @@ import org.apache.james.blob.objectstorage.crypto.CryptoConfig; import org.apache.james.blob.objectstorage.swift.Credentials; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(DockerAwsS3Extension.class) -public class ObjectStorageBlobsDAOAWSCryptoTest implements MetricableBlobStoreContract, BucketBlobStoreContract { +public class ObjectStorageBlobsDAOAWSCryptoTest implements MetricableBlobStoreContract, BucketBlobStoreContract, DeleteBlobStoreContract { private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory(); private static final Credentials PASSWORD = Credentials.of("testing"); private static final String SAMPLE_SALT = "c603a7327ee3dcbc031d8d34b1096c605feca5e1"; @@ -85,10 +85,4 @@ public class ObjectStorageBlobsDAOAWSCryptoTest implements MetricableBlobStoreCo public BlobId.Factory blobIdFactory() { return BLOB_ID_FACTORY; } - - @Override - @Disabled("JAMES-2829 Not supported yet") - public void deleteShouldPublishDeleteTimerMetrics() { - - } } diff --git a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSNamespaceTest.java b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSNamespaceTest.java index e17b34a..5110e6b 100644 --- a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSNamespaceTest.java +++ b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSNamespaceTest.java @@ -23,6 +23,7 @@ import org.apache.james.blob.api.BlobId; import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.BucketBlobStoreContract; import org.apache.james.blob.api.BucketName; +import org.apache.james.blob.api.DeleteBlobStoreContract; import org.apache.james.blob.api.HashBlobId; import org.apache.james.blob.api.MetricableBlobStore; import org.apache.james.blob.api.MetricableBlobStoreContract; @@ -32,11 +33,10 @@ import org.apache.james.blob.objectstorage.aws.DockerAwsS3Container; import org.apache.james.blob.objectstorage.aws.DockerAwsS3Extension; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(DockerAwsS3Extension.class) -public class ObjectStorageBlobsDAOAWSNamespaceTest implements MetricableBlobStoreContract, BucketBlobStoreContract { +public class ObjectStorageBlobsDAOAWSNamespaceTest implements MetricableBlobStoreContract, BucketBlobStoreContract, DeleteBlobStoreContract { private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory(); private BlobStore testee; @@ -78,11 +78,5 @@ public class ObjectStorageBlobsDAOAWSNamespaceTest implements MetricableBlobStor public BlobId.Factory blobIdFactory() { return new HashBlobId.Factory(); } - - @Override - @Disabled("JAMES-2829 Not supported yet") - public void deleteShouldPublishDeleteTimerMetrics() { - - } } diff --git a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest.java b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest.java index c377d32..dfe5e30 100644 --- a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest.java +++ b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest.java @@ -23,6 +23,7 @@ import org.apache.james.blob.api.BlobId; import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.BucketBlobStoreContract; import org.apache.james.blob.api.BucketName; +import org.apache.james.blob.api.DeleteBlobStoreContract; import org.apache.james.blob.api.HashBlobId; import org.apache.james.blob.api.MetricableBlobStore; import org.apache.james.blob.api.MetricableBlobStoreContract; @@ -32,11 +33,10 @@ import org.apache.james.blob.objectstorage.aws.DockerAwsS3Container; import org.apache.james.blob.objectstorage.aws.DockerAwsS3Extension; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(DockerAwsS3Extension.class) -public class ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest implements MetricableBlobStoreContract, BucketBlobStoreContract { +public class ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest implements MetricableBlobStoreContract, BucketBlobStoreContract, DeleteBlobStoreContract { private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory(); private BlobStore testee; @@ -79,11 +79,5 @@ public class ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest implements Metricabl public BlobId.Factory blobIdFactory() { return new HashBlobId.Factory(); } - - @Override - @Disabled("JAMES-2829 Not supported yet") - public void deleteShouldPublishDeleteTimerMetrics() { - - } } diff --git a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixTest.java b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixTest.java index 8835d0f..ae2db5c 100644 --- a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixTest.java +++ b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixTest.java @@ -22,6 +22,7 @@ package org.apache.james.blob.objectstorage; import org.apache.james.blob.api.BlobId; import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.BucketBlobStoreContract; +import org.apache.james.blob.api.DeleteBlobStoreContract; import org.apache.james.blob.api.HashBlobId; import org.apache.james.blob.api.MetricableBlobStore; import org.apache.james.blob.api.MetricableBlobStoreContract; @@ -31,11 +32,10 @@ import org.apache.james.blob.objectstorage.aws.DockerAwsS3Container; import org.apache.james.blob.objectstorage.aws.DockerAwsS3Extension; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(DockerAwsS3Extension.class) -public class ObjectStorageBlobsDAOAWSPrefixTest implements MetricableBlobStoreContract, BucketBlobStoreContract { +public class ObjectStorageBlobsDAOAWSPrefixTest implements MetricableBlobStoreContract, BucketBlobStoreContract, DeleteBlobStoreContract { private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory(); private BlobStore testee; @@ -77,11 +77,5 @@ public class ObjectStorageBlobsDAOAWSPrefixTest implements MetricableBlobStoreCo public BlobId.Factory blobIdFactory() { return new HashBlobId.Factory(); } - - @Override - @Disabled("JAMES-2829 Not supported yet") - public void deleteShouldPublishDeleteTimerMetrics() { - - } } diff --git a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java index a61618a..4133d68 100644 --- a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java +++ b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java @@ -22,6 +22,7 @@ package org.apache.james.blob.objectstorage; import org.apache.james.blob.api.BlobId; import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.BucketBlobStoreContract; +import org.apache.james.blob.api.DeleteBlobStoreContract; import org.apache.james.blob.api.HashBlobId; import org.apache.james.blob.api.MetricableBlobStore; import org.apache.james.blob.api.MetricableBlobStoreContract; @@ -31,11 +32,10 @@ import org.apache.james.blob.objectstorage.aws.DockerAwsS3Container; import org.apache.james.blob.objectstorage.aws.DockerAwsS3Extension; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.extension.ExtendWith; @ExtendWith(DockerAwsS3Extension.class) -public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract, BucketBlobStoreContract { +public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract, BucketBlobStoreContract, DeleteBlobStoreContract { private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory(); @@ -77,10 +77,4 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract public BlobId.Factory blobIdFactory() { return BLOB_ID_FACTORY; } - - @Override - @Disabled("JAMES-2829 Not supported yet") - public void deleteShouldPublishDeleteTimerMetrics() { - - } } diff --git a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOTest.java b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOTest.java index b887ad8..6e1520f 100644 --- a/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOTest.java +++ b/server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOTest.java @@ -31,6 +31,7 @@ import org.apache.james.blob.api.BlobId; import org.apache.james.blob.api.BlobStore; import org.apache.james.blob.api.BucketBlobStoreContract; import org.apache.james.blob.api.BucketName; +import org.apache.james.blob.api.DeleteBlobStoreContract; import org.apache.james.blob.api.HashBlobId; import org.apache.james.blob.api.MetricableBlobStore; import org.apache.james.blob.api.MetricableBlobStoreContract; @@ -46,7 +47,6 @@ import org.jclouds.blobstore.domain.StorageType; import org.jclouds.domain.Location; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -57,7 +57,7 @@ import reactor.core.publisher.Mono; import reactor.core.scheduler.Schedulers; @ExtendWith(DockerSwiftExtension.class) -public class ObjectStorageBlobsDAOTest implements MetricableBlobStoreContract, BucketBlobStoreContract { +public class ObjectStorageBlobsDAOTest implements MetricableBlobStoreContract, BucketBlobStoreContract, DeleteBlobStoreContract { private static final String BIG_STRING = Strings.repeat("big blob content", 10 * 1024); private static final TenantName TENANT_NAME = TenantName.of("test"); @@ -206,11 +206,5 @@ public class ObjectStorageBlobsDAOTest implements MetricableBlobStoreContract, B Mono<byte[]> resultFuture = testee.readBytes(testee.getDefaultBucketName(), blobId).subscribeOn(Schedulers.elastic()); assertThat(resultFuture.toFuture()).isNotCompleted(); } - - @Override - @Disabled("JAMES-2829 Not supported yet") - public void deleteShouldPublishDeleteTimerMetrics() { - - } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
