JAMES-2589 container creation must happen in all swift modules _and_ 
synchronously


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f1153223
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f1153223
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f1153223

Branch: refs/heads/master
Commit: f115322320430dad6586867573303d5fb741d5b0
Parents: 4ac06de
Author: Matthieu Baechler <matth...@apache.org>
Authored: Thu Nov 15 15:39:45 2018 +0100
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Fri Nov 16 09:44:52 2018 +0700

----------------------------------------------------------------------
 .../modules/objectstorage/ObjectStorageBlobStoreModule.java | 9 +--------
 .../objectstorage/ObjectStorageDependenciesModule.java      | 9 +++++++--
 2 files changed, 8 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f1153223/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageBlobStoreModule.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageBlobStoreModule.java
 
b/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageBlobStoreModule.java
index 4c020f8..be0ff04 100644
--- 
a/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageBlobStoreModule.java
+++ 
b/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageBlobStoreModule.java
@@ -23,20 +23,13 @@ import org.apache.james.blob.api.BlobStore;
 import org.apache.james.blob.objectstorage.ObjectStorageBlobsDAO;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
-import com.google.inject.Singleton;
 
 public class ObjectStorageBlobStoreModule extends AbstractModule {
 
     @Override
     protected void configure() {
         install(new ObjectStorageDependenciesModule());
+        bind(BlobStore.class).to(ObjectStorageBlobsDAO.class);
     }
 
-    @Provides
-    @Singleton
-    private BlobStore provideBlobStore(ObjectStorageBlobsDAO dao, 
ObjectStorageBlobConfiguration configuration) {
-        dao.createContainer(configuration.getNamespace());
-        return dao;
-    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/f1153223/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageDependenciesModule.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageDependenciesModule.java
 
b/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageDependenciesModule.java
index ce13f7a..0c975f2 100644
--- 
a/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageDependenciesModule.java
+++ 
b/server/container/guice/blob-objectstorage-guice/src/main/java/org/apache/james/modules/objectstorage/ObjectStorageDependenciesModule.java
@@ -20,6 +20,9 @@
 package org.apache.james.modules.objectstorage;
 
 import java.io.FileNotFoundException;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 import javax.inject.Singleton;
 
@@ -68,11 +71,13 @@ public class ObjectStorageDependenciesModule extends 
AbstractModule {
 
     @Provides
     @Singleton
-    private ObjectStorageBlobsDAO 
buildObjectStore(ObjectStorageBlobConfiguration configuration, BlobId.Factory 
blobIdFactory) {
-        return selectDaoBuilder(configuration)
+    private ObjectStorageBlobsDAO 
buildObjectStore(ObjectStorageBlobConfiguration configuration, BlobId.Factory 
blobIdFactory) throws InterruptedException, ExecutionException, 
TimeoutException {
+        ObjectStorageBlobsDAO dao = selectDaoBuilder(configuration)
             .container(configuration.getNamespace())
             .blobIdFactory(blobIdFactory)
             .build();
+        dao.createContainer(configuration.getNamespace()).get(1, 
TimeUnit.MINUTES);
+        return dao;
     }
 
     private ObjectStorageBlobsDAOBuilder.RequireContainerName 
selectDaoBuilder(ObjectStorageBlobConfiguration configuration) {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to