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 bt...@apache.org on 2019/07/11 07:25:46 UTC
[james-project] 08/09: JAMES-2806 read & deleteBucket need to
resolve bucket names
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit a8eaf978531a14d94d0600d1cfbbc12cbdcadad8
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Jul 10 14:39:55 2019 +0200
JAMES-2806 read & deleteBucket need to resolve bucket names
We need to test expected blob features on all configuration
---
.../james/blob/objectstorage/ObjectStorageBlobsDAO.java | 6 ++++--
...Test.java => ObjectStorageBlobsDAOAWSNamespaceTest.java} | 12 ++++++------
... => ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest.java} | 13 +++++++------
...AWSTest.java => ObjectStorageBlobsDAOAWSPrefixTest.java} | 13 ++++++-------
.../blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java | 3 ---
5 files changed, 23 insertions(+), 24 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 46c080f..2e4b2ef 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
@@ -160,7 +160,8 @@ public class ObjectStorageBlobsDAO implements BlobStore {
@Override
public InputStream read(BucketName bucketName, BlobId blobId) throws ObjectStoreException {
- Blob blob = blobStore.getBlob(bucketName.asString(), blobId.asString());
+ ObjectStorageBucketName resolvedBucketName = bucketNameResolver.resolve(bucketName);
+ Blob blob = blobStore.getBlob(resolvedBucketName.asString(), blobId.asString());
try {
if (blob != null) {
@@ -182,7 +183,8 @@ public class ObjectStorageBlobsDAO implements BlobStore {
@Override
public Mono<Void> deleteBucket(BucketName bucketName) {
- return Mono.<Void>fromRunnable(() -> blobStore.deleteContainer(bucketName.asString()))
+ ObjectStorageBucketName resolvedBucketName = bucketNameResolver.resolve(bucketName);
+ return Mono.<Void>fromRunnable(() -> blobStore.deleteContainer(resolvedBucketName.asString()))
.subscribeOn(Schedulers.elastic());
}
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/ObjectStorageBlobsDAOAWSNamespaceTest.java
similarity index 92%
copy from server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java
copy to server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSNamespaceTest.java
index 7ddc4af..8eab612 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/ObjectStorageBlobsDAOAWSNamespaceTest.java
@@ -35,18 +35,16 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(DockerAwsS3Extension.class)
-public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract, BucketBlobStoreContract {
-
+public class ObjectStorageBlobsDAOAWSNamespaceTest implements MetricableBlobStoreContract, BucketBlobStoreContract {
private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory();
+ private BlobStore testee;
private ObjectStorageBlobsDAO objectStorageBlobsDAO;
private AwsS3ObjectStorage awsS3ObjectStorage;
- private BlobStore testee;
@BeforeEach
void setUp(DockerAwsS3Container dockerAwsS3) {
awsS3ObjectStorage = new AwsS3ObjectStorage();
- BucketName defaultBucketName = BucketName.of("e7a929fe-2003-48d4-aaa9-a65d4954379d");
AwsS3AuthConfiguration configuration = AwsS3AuthConfiguration.builder()
.endpoint(dockerAwsS3.getEndpoint())
.accessKeyId(DockerAwsS3Container.ACCESS_KEY_ID)
@@ -56,7 +54,7 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
ObjectStorageBlobsDAOBuilder.ReadyToBuild builder = ObjectStorageBlobsDAO
.builder(configuration)
.blobIdFactory(BLOB_ID_FACTORY)
- .namespace(defaultBucketName)
+ .namespace(BucketName.of("namespace"))
.blobPutter(awsS3ObjectStorage.putBlob(configuration));
objectStorageBlobsDAO = builder.build();
@@ -77,6 +75,8 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
@Override
public BlobId.Factory blobIdFactory() {
- return BLOB_ID_FACTORY;
+ return new HashBlobId.Factory();
}
+
}
+
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/ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest.java
similarity index 92%
copy from server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java
copy to server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest.java
index 7ddc4af..dae3ff8 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/ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest.java
@@ -35,18 +35,16 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(DockerAwsS3Extension.class)
-public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract, BucketBlobStoreContract {
-
+public class ObjectStorageBlobsDAOAWSPrefixAndNamespaceTest implements MetricableBlobStoreContract, BucketBlobStoreContract {
private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory();
+ private BlobStore testee;
private ObjectStorageBlobsDAO objectStorageBlobsDAO;
private AwsS3ObjectStorage awsS3ObjectStorage;
- private BlobStore testee;
@BeforeEach
void setUp(DockerAwsS3Container dockerAwsS3) {
awsS3ObjectStorage = new AwsS3ObjectStorage();
- BucketName defaultBucketName = BucketName.of("e7a929fe-2003-48d4-aaa9-a65d4954379d");
AwsS3AuthConfiguration configuration = AwsS3AuthConfiguration.builder()
.endpoint(dockerAwsS3.getEndpoint())
.accessKeyId(DockerAwsS3Container.ACCESS_KEY_ID)
@@ -56,7 +54,8 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
ObjectStorageBlobsDAOBuilder.ReadyToBuild builder = ObjectStorageBlobsDAO
.builder(configuration)
.blobIdFactory(BLOB_ID_FACTORY)
- .namespace(defaultBucketName)
+ .bucketPrefix("prefix")
+ .namespace(BucketName.of("namespace"))
.blobPutter(awsS3ObjectStorage.putBlob(configuration));
objectStorageBlobsDAO = builder.build();
@@ -77,6 +76,8 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
@Override
public BlobId.Factory blobIdFactory() {
- return BLOB_ID_FACTORY;
+ return new HashBlobId.Factory();
}
+
}
+
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/ObjectStorageBlobsDAOAWSPrefixTest.java
similarity index 91%
copy from server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSTest.java
copy to server/blob/blob-objectstorage/src/test/java/org/apache/james/blob/objectstorage/ObjectStorageBlobsDAOAWSPrefixTest.java
index 7ddc4af..e9cd435 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/ObjectStorageBlobsDAOAWSPrefixTest.java
@@ -22,7 +22,6 @@ 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.BucketName;
import org.apache.james.blob.api.HashBlobId;
import org.apache.james.blob.api.MetricableBlobStore;
import org.apache.james.blob.api.MetricableBlobStoreContract;
@@ -35,18 +34,16 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(DockerAwsS3Extension.class)
-public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract, BucketBlobStoreContract {
-
+public class ObjectStorageBlobsDAOAWSPrefixTest implements MetricableBlobStoreContract, BucketBlobStoreContract {
private static final HashBlobId.Factory BLOB_ID_FACTORY = new HashBlobId.Factory();
+ private BlobStore testee;
private ObjectStorageBlobsDAO objectStorageBlobsDAO;
private AwsS3ObjectStorage awsS3ObjectStorage;
- private BlobStore testee;
@BeforeEach
void setUp(DockerAwsS3Container dockerAwsS3) {
awsS3ObjectStorage = new AwsS3ObjectStorage();
- BucketName defaultBucketName = BucketName.of("e7a929fe-2003-48d4-aaa9-a65d4954379d");
AwsS3AuthConfiguration configuration = AwsS3AuthConfiguration.builder()
.endpoint(dockerAwsS3.getEndpoint())
.accessKeyId(DockerAwsS3Container.ACCESS_KEY_ID)
@@ -56,7 +53,7 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
ObjectStorageBlobsDAOBuilder.ReadyToBuild builder = ObjectStorageBlobsDAO
.builder(configuration)
.blobIdFactory(BLOB_ID_FACTORY)
- .namespace(defaultBucketName)
+ .bucketPrefix("prefix")
.blobPutter(awsS3ObjectStorage.putBlob(configuration));
objectStorageBlobsDAO = builder.build();
@@ -77,6 +74,8 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
@Override
public BlobId.Factory blobIdFactory() {
- return BLOB_ID_FACTORY;
+ return new HashBlobId.Factory();
}
+
}
+
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 7ddc4af..6fd6a6f 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,7 +22,6 @@ 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.BucketName;
import org.apache.james.blob.api.HashBlobId;
import org.apache.james.blob.api.MetricableBlobStore;
import org.apache.james.blob.api.MetricableBlobStoreContract;
@@ -46,7 +45,6 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
@BeforeEach
void setUp(DockerAwsS3Container dockerAwsS3) {
awsS3ObjectStorage = new AwsS3ObjectStorage();
- BucketName defaultBucketName = BucketName.of("e7a929fe-2003-48d4-aaa9-a65d4954379d");
AwsS3AuthConfiguration configuration = AwsS3AuthConfiguration.builder()
.endpoint(dockerAwsS3.getEndpoint())
.accessKeyId(DockerAwsS3Container.ACCESS_KEY_ID)
@@ -56,7 +54,6 @@ public class ObjectStorageBlobsDAOAWSTest implements MetricableBlobStoreContract
ObjectStorageBlobsDAOBuilder.ReadyToBuild builder = ObjectStorageBlobsDAO
.builder(configuration)
.blobIdFactory(BLOB_ID_FACTORY)
- .namespace(defaultBucketName)
.blobPutter(awsS3ObjectStorage.putBlob(configuration));
objectStorageBlobsDAO = builder.build();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org