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]
