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 ae7beae9d068709a3edd59d39afee4314efa3860
Author: Matthieu Baechler <[email protected]>
AuthorDate: Tue Feb 11 14:43:04 2020 +0100

    JAMES-3028 move S3BlobConfiguration to blob-s3 and rename beans
---
 .../aws/S3BlobStoreConfiguration.java}             | 50 +++++----------------
 .../S3BlobStoreConfigurationReader.java            | 52 ++++++++++++++++++++++
 .../modules/objectstorage/S3BlobStoreModule.java   | 25 ++++-------
 .../objectstorage/aws/s3/DockerAwsS3TestRule.java  |  6 +--
 4 files changed, 74 insertions(+), 59 deletions(-)

diff --git 
a/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobConfiguration.java
 
b/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreConfiguration.java
similarity index 68%
rename from 
server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobConfiguration.java
rename to 
server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreConfiguration.java
index 7410276..d0a1b7a 100644
--- 
a/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobConfiguration.java
+++ 
b/server/blob/blob-s3/src/main/java/org/apache/james/blob/objectstorage/aws/S3BlobStoreConfiguration.java
@@ -17,47 +17,17 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.modules.objectstorage;
+package org.apache.james.blob.objectstorage.aws;
 
 import java.util.Objects;
 import java.util.Optional;
 
-import org.apache.commons.configuration2.Configuration;
-import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.james.blob.api.BucketName;
-import org.apache.james.blob.objectstorage.aws.AwsS3AuthConfiguration;
-import org.apache.james.blob.objectstorage.aws.Region;
-import org.apache.james.modules.objectstorage.aws.s3.AwsS3ConfigurationReader;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.MoreObjects;
 
-public class S3BlobConfiguration {
-
-    private static final String OBJECTSTORAGE_NAMESPACE = 
"objectstorage.namespace";
-    private static final String OBJECTSTORAGE_BUCKET_PREFIX = 
"objectstorage.bucketPrefix";
-    private static final String OBJECTSTORAGE_S3_REGION = 
"objectstorage.s3.region";
-
-    static final String DEFAULT_BUCKET_PREFIX = "";
-
-    public static S3BlobConfiguration from(Configuration configuration) throws 
ConfigurationException {
-        Optional<String> namespace = 
Optional.ofNullable(configuration.getString(OBJECTSTORAGE_NAMESPACE, null));
-        Optional<String> bucketPrefix = 
Optional.ofNullable(configuration.getString(OBJECTSTORAGE_BUCKET_PREFIX, null));
-        Region region = 
Optional.ofNullable(configuration.getString(OBJECTSTORAGE_S3_REGION, null))
-            .map(Region::of)
-            .orElseThrow(() -> new ConfigurationException("require a region (" 
+ OBJECTSTORAGE_S3_REGION + " key)"));
-
-        return builder()
-            .authConfiguration(authConfiguration(configuration))
-            .region(region)
-            .defaultBucketName(namespace.map(BucketName::of))
-            .bucketPrefix(bucketPrefix)
-            .build();
-    }
-
-    private static AwsS3AuthConfiguration authConfiguration(Configuration 
configuration) throws ConfigurationException {
-        return AwsS3ConfigurationReader.from(configuration);
-    }
+public class S3BlobStoreConfiguration {
 
     public static Builder.RequireAuthConfiguration builder() {
         return authConfiguration -> region -> new 
Builder.ReadyToBuild(authConfiguration, region);
@@ -110,8 +80,8 @@ public class S3BlobConfiguration {
                 return this;
             }
 
-            public S3BlobConfiguration build() {
-                return new S3BlobConfiguration(bucketPrefix, 
defaultBucketName, region, specificAuthConfiguration);
+            public S3BlobStoreConfiguration build() {
+                return new S3BlobStoreConfiguration(bucketPrefix, 
defaultBucketName, region, specificAuthConfiguration);
             }
         }
 
@@ -123,10 +93,10 @@ public class S3BlobConfiguration {
     private final Optional<String> bucketPrefix;
 
     @VisibleForTesting
-    S3BlobConfiguration(Optional<String> bucketPrefix,
-                        Optional<BucketName> namespace,
-                        Region region,
-                        AwsS3AuthConfiguration specificAuthConfiguration) {
+    S3BlobStoreConfiguration(Optional<String> bucketPrefix,
+                             Optional<BucketName> namespace,
+                             Region region,
+                             AwsS3AuthConfiguration specificAuthConfiguration) 
{
         this.bucketPrefix = bucketPrefix;
         this.namespace = namespace;
         this.region = region;
@@ -151,8 +121,8 @@ public class S3BlobConfiguration {
 
     @Override
     public final boolean equals(Object o) {
-        if (o instanceof S3BlobConfiguration) {
-            S3BlobConfiguration that = (S3BlobConfiguration) o;
+        if (o instanceof S3BlobStoreConfiguration) {
+            S3BlobStoreConfiguration that = (S3BlobStoreConfiguration) o;
 
             return Objects.equals(this.namespace, that.namespace)
                 && Objects.equals(this.bucketPrefix, that.bucketPrefix)
diff --git 
a/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreConfigurationReader.java
 
b/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreConfigurationReader.java
new file mode 100644
index 0000000..418c7a7
--- /dev/null
+++ 
b/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreConfigurationReader.java
@@ -0,0 +1,52 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.modules.objectstorage;
+
+import java.util.Optional;
+
+import org.apache.commons.configuration2.Configuration;
+import org.apache.commons.configuration2.ex.ConfigurationException;
+import org.apache.james.blob.api.BucketName;
+import org.apache.james.blob.objectstorage.aws.Region;
+import org.apache.james.blob.objectstorage.aws.S3BlobStoreConfiguration;
+import org.apache.james.modules.objectstorage.aws.s3.AwsS3ConfigurationReader;
+
+public class S3BlobStoreConfigurationReader {
+
+    private static final String OBJECTSTORAGE_NAMESPACE = 
"objectstorage.namespace";
+    private static final String OBJECTSTORAGE_BUCKET_PREFIX = 
"objectstorage.bucketPrefix";
+    private static final String OBJECTSTORAGE_S3_REGION = 
"objectstorage.s3.region";
+
+    public static S3BlobStoreConfiguration from(Configuration configuration) 
throws ConfigurationException {
+        Optional<String> namespace = 
Optional.ofNullable(configuration.getString(OBJECTSTORAGE_NAMESPACE, null));
+        Optional<String> bucketPrefix = 
Optional.ofNullable(configuration.getString(OBJECTSTORAGE_BUCKET_PREFIX, null));
+        Region region = 
Optional.ofNullable(configuration.getString(OBJECTSTORAGE_S3_REGION, null))
+            .map(Region::of)
+            .orElseThrow(() -> new ConfigurationException("require a region (" 
+ OBJECTSTORAGE_S3_REGION + " key)"));
+
+        return S3BlobStoreConfiguration.builder()
+            .authConfiguration(AwsS3ConfigurationReader.from(configuration))
+            .region(region)
+            .defaultBucketName(namespace.map(BucketName::of))
+            .bucketPrefix(bucketPrefix)
+            .build();
+    }
+
+}
diff --git 
a/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreModule.java
 
b/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreModule.java
index fe000e1..7c1092c 100644
--- 
a/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreModule.java
+++ 
b/server/container/guice/blob-s3-guice/src/main/java/org/apache/james/modules/objectstorage/S3BlobStoreModule.java
@@ -25,31 +25,24 @@ import javax.inject.Singleton;
 
 import org.apache.commons.configuration2.Configuration;
 import org.apache.commons.configuration2.ex.ConfigurationException;
-import org.apache.james.blob.api.BlobId;
 import org.apache.james.blob.api.BucketName;
-import org.apache.james.blob.api.HashBlobId;
 import org.apache.james.blob.objectstorage.aws.AwsS3AuthConfiguration;
 import org.apache.james.blob.objectstorage.aws.Region;
+import org.apache.james.blob.objectstorage.aws.S3BlobStoreConfiguration;
 import org.apache.james.modules.mailbox.ConfigurationComponent;
 import org.apache.james.utils.PropertiesProvider;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Provides;
-import com.google.inject.Scopes;
 
 public class S3BlobStoreModule extends AbstractModule {
 
-    @Override
-    protected void configure() {
-        
bind(BlobId.Factory.class).to(HashBlobId.Factory.class).in(Scopes.SINGLETON);
-    }
-
     @Provides
     @Singleton
-    private S3BlobConfiguration 
getObjectStorageConfiguration(PropertiesProvider propertiesProvider) throws 
ConfigurationException {
+    private S3BlobStoreConfiguration 
getObjectStorageConfiguration(PropertiesProvider propertiesProvider) throws 
ConfigurationException {
         try {
             Configuration configuration = 
propertiesProvider.getConfigurations(ConfigurationComponent.NAMES);
-            return S3BlobConfiguration.from(configuration);
+            return S3BlobStoreConfigurationReader.from(configuration);
         } catch (FileNotFoundException e) {
             throw new ConfigurationException(ConfigurationComponent.NAME + " 
configuration was not found");
         }
@@ -57,20 +50,20 @@ public class S3BlobStoreModule extends AbstractModule {
 
     @Provides
     @Singleton
-    private AwsS3AuthConfiguration awsS3AuthConfiguration(S3BlobConfiguration 
s3BlobConfiguration) {
-        return s3BlobConfiguration.getSpecificAuthConfiguration();
+    private AwsS3AuthConfiguration 
awsS3AuthConfiguration(S3BlobStoreConfiguration s3BlobStoreConfiguration) {
+        return s3BlobStoreConfiguration.getSpecificAuthConfiguration();
     }
 
     @Provides
     @Singleton
-    private BucketName defaultBucket(S3BlobConfiguration s3BlobConfiguration) {
-        return s3BlobConfiguration.getNamespace().orElse(BucketName.DEFAULT);
+    private BucketName defaultBucket(S3BlobStoreConfiguration 
s3BlobStoreConfiguration) {
+        return 
s3BlobStoreConfiguration.getNamespace().orElse(BucketName.DEFAULT);
     }
 
     @Provides
     @Singleton
-    private Region region(S3BlobConfiguration s3BlobConfiguration) {
-        return s3BlobConfiguration.getRegion();
+    private Region region(S3BlobStoreConfiguration s3BlobStoreConfiguration) {
+        return s3BlobStoreConfiguration.getRegion();
     }
 
 }
diff --git 
a/server/container/guice/blob-s3-guice/src/test/java/org/apache/james/modules/objectstorage/aws/s3/DockerAwsS3TestRule.java
 
b/server/container/guice/blob-s3-guice/src/test/java/org/apache/james/modules/objectstorage/aws/s3/DockerAwsS3TestRule.java
index f156cf6..f001461 100644
--- 
a/server/container/guice/blob-s3-guice/src/test/java/org/apache/james/modules/objectstorage/aws/s3/DockerAwsS3TestRule.java
+++ 
b/server/container/guice/blob-s3-guice/src/test/java/org/apache/james/modules/objectstorage/aws/s3/DockerAwsS3TestRule.java
@@ -27,7 +27,7 @@ import 
org.apache.james.blob.objectstorage.aws.AwsS3AuthConfiguration;
 import org.apache.james.blob.objectstorage.aws.DockerAwsS3Container;
 import org.apache.james.blob.objectstorage.aws.DockerAwsS3Singleton;
 import org.apache.james.blob.objectstorage.aws.Region;
-import org.apache.james.modules.objectstorage.S3BlobConfiguration;
+import org.apache.james.blob.objectstorage.aws.S3BlobStoreConfiguration;
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
 
@@ -67,7 +67,7 @@ public class DockerAwsS3TestRule implements 
GuiceModuleTestRule {
             .build();
 
         Region region = DockerAwsS3Container.REGION;
-        S3BlobConfiguration configuration = S3BlobConfiguration.builder()
+        S3BlobStoreConfiguration configuration = 
S3BlobStoreConfiguration.builder()
             .authConfiguration(authConfiguration)
             .region(region)
             .defaultBucketName(defaultBucketName)
@@ -78,7 +78,7 @@ public class DockerAwsS3TestRule implements 
GuiceModuleTestRule {
             binder.bind(BucketName.class).toInstance(defaultBucketName);
             binder.bind(Region.class).toInstance(region);
             
binder.bind(AwsS3AuthConfiguration.class).toInstance(authConfiguration);
-            binder.bind(S3BlobConfiguration.class).toInstance(configuration);
+            
binder.bind(S3BlobStoreConfiguration.class).toInstance(configuration);
         };
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to