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]

Reply via email to