JAMES-2553 JamesServerExtension should wire await

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

Branch: refs/heads/master
Commit: a57a91db73ad6bd6d3b9fd6f527c7e0f22e55adc
Parents: 0cc7b27
Author: Benoit Tellier <[email protected]>
Authored: Tue Oct 2 14:29:54 2018 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Thu Oct 4 17:48:42 2018 +0700

----------------------------------------------------------------------
 .../java/org/apache/james/JamesServerExtension.java    | 13 ++++++++++++-
 .../org/apache/james/JamesServerExtensionBuilder.java  |  3 ++-
 2 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a57a91db/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtension.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtension.java
 
b/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtension.java
index 829e741..722826c 100644
--- 
a/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtension.java
+++ 
b/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtension.java
@@ -38,17 +38,24 @@ public class JamesServerExtension implements 
BeforeAllCallback, BeforeEachCallba
         T apply(P parameter) throws Exception;
     }
 
+    interface AwaitCondition {
+        void await();
+    }
+
     private final TemporaryFolderRegistrableExtension 
folderRegistrableExtension;
     private final ThrowingFunction<File, GuiceJamesServer> serverSupplier;
     private final RegistrableExtension registrableExtension;
     private final boolean autoStart;
+    private final AwaitCondition awaitCondition;
     private GuiceJamesServer guiceJamesServer;
 
-    JamesServerExtension(RegistrableExtension registrableExtension, 
ThrowingFunction<File, GuiceJamesServer> serverSupplier, boolean autoStart) {
+    JamesServerExtension(RegistrableExtension registrableExtension, 
ThrowingFunction<File, GuiceJamesServer> serverSupplier,
+                         AwaitCondition awaitCondition, boolean autoStart) {
         this.registrableExtension = registrableExtension;
         this.serverSupplier = serverSupplier;
         this.folderRegistrableExtension = new 
TemporaryFolderRegistrableExtension();
         this.autoStart = autoStart;
+        this.awaitCondition = awaitCondition;
     }
 
     @Override
@@ -95,4 +102,8 @@ public class JamesServerExtension implements 
BeforeAllCallback, BeforeEachCallba
             throw new UncheckedIOException(e);
         }
     }
+
+    public void await() {
+        awaitCondition.await();
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a57a91db/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java
----------------------------------------------------------------------
diff --git 
a/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java
 
b/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java
index 9981ce1..7caa047 100644
--- 
a/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java
+++ 
b/server/container/guice/guice-common/src/test/java/org/apache/james/JamesServerExtensionBuilder.java
@@ -83,9 +83,10 @@ public class JamesServerExtensionBuilder {
     public JamesServerExtension build() {
         Preconditions.checkNotNull(server);
         ConfigurationProvider configuration = 
this.configuration.orElse(defaultConfigurationProvider());
+        JamesServerExtension.AwaitCondition awaitCondition = () -> 
extensions.build().forEach(GuiceModuleTestExtension::await);
 
         return new JamesServerExtension(buildAggregateJunitExtension(), file 
-> overrideServerWithExtensionsModules(file, configuration),
-            autoStart.orElse(DEFAULT_AUTO_START));
+            awaitCondition, autoStart.orElse(DEFAULT_AUTO_START));
     }
 
     private ConfigurationProvider defaultConfigurationProvider() {


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

Reply via email to